2012-05-23 13 views
5

पर इंगित करने के लिए @RenderBody बदलें डिफ़ॉल्ट रूप से, एक MVC3 ऐप में _Layout.cshtml में @RenderBody ~/Views/Home/Index को इंगित करता है।अलग देखें MVC3

@RenderBody() 

यह सेट कहां है और मैं इसे// दृश्य/खाता/लॉगऑन पर इंगित करने के लिए कैसे बदलूं? या जहां भी मैं चाहता हूँ। धन्यवाद

+0

'रेंडरबॉडी' कॉल आपके वास्तविक दृश्य की सामग्री प्रस्तुत करेगा। आपको इसे कहीं भी रखना चाहिए जहां आप दृश्य की सामग्री होना चाहते हैं। यह किसी विचार को इंगित नहीं कर रहा है, यह वर्तमान में अनुरोधित दृश्य को प्रस्तुत करना है। क्या आप एप्लिकेशन शुरू करने पर 'लॉगऑन' दृश्य प्रस्तुत करने के लिए इसे बदलने की कोशिश कर रहे हैं? – mattytommo

उत्तर

1

यह उस दृश्य को इंगित नहीं करता, यह केवल विचार है कि यह दिया जाता है renders

आपका एप्लिकेशन को शुरू होता है और मार्ग पर डिफ़ॉल्ट कार्रवाई Global.asax

आप में पाया जा सकता है के लिए चला जाता कि /Account/LogOn डिफ़ॉल्ट संशोधित यदि आप चाहें

public class MvcApplication : System.Web.HttpApplication { 

    public static void RegisterGlobalFilters(GlobalFilterCollection filters) { 
     filters.Add(new HandleErrorAttribute()); 
    } 

    public static void RegisterRoutes(RouteCollection routes) { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
     //routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" }); 

     routes.MapRoute(
      "Default", // Route name 
      "{controller}/{action}/{id}", // URL with parameters 
      new { controller = "Account", action = "LogOn", id = UrlParameter.Optional } // Parameter defaults 
     ); 
    } 

    protected void Application_Start() { 
     AreaRegistration.RegisterAllAreas(); 

     RegisterGlobalFilters(GlobalFilters.Filters); 
     RegisterRoutes(RouteTable.Routes); 
    } 
} 
+0

पास कर सकते हैं अब जब मैं ऐप चलाता हूं तो मुझे 404 मिलते हैं। यदि मैं ऐप चलाता हूं और फिर http: // localhost: 64059/खाता/लॉगऑन/उपयोगकर्ता टाइप करता हूं, हाँ मैं पैरामीटर में गुजर रहा हूं, तो मेरा लॉगऑन व्यू दिखाई देता है। मैं इसे कैसे ठीक कर सकता हूं इसलिए मुझे अपने लॉगऑन व्यू को – BoundForGlory

+0

दिखाने के लिए किसी भी टाइपिंग को करने की ज़रूरत नहीं है जब आपका ऐप शुरू होता है, तो यह डिफ़ॉल्ट कार्रवाई के लिए रूट करता है, उस समय पैरामीटर –

+0

पैरामीटर के रूप में पास करने के लिए कोई उपयोगकर्ता नहीं है अपने लॉगऑन एक्शन के साथ अपना प्रश्न अपडेट करें ताकि मैं देख सकूं कि आप अपने 'उपयोगकर्ता' –

1

रेंडरबॉडी डिफ़ॉल्ट रूप से ~/Views/Home/Index पर इंगित नहीं करता है। यह उस दृश्य को प्रस्तुत करता है जिसे निष्पादित किया गया नियंत्रक क्रिया द्वारा वापस किया गया था। और चूंकि रूटिंग परिभाषा में आपके ग्लोबल.एक्सएक्स में डिफ़ॉल्ट कार्रवाई इंडेक्स होने के लिए कॉन्फ़िगर की गई है, यह यह दृश्य है जो प्रस्तुत किया जाता है।

तो तुम सब करने की है अपने मार्ग विन्यास में संशोधन करें ताकि डिफ़ॉल्ट क्रिया खाता नियंत्रक पर लॉग ऑन है:

routes.MapRoute(
    "Default", // Route name 
    "{controller}/{action}/{id}", // URL with parameters 
    new { controller = "Account", action = "LogOn", id = UrlParameter.Optional } // Parameter defaults 
); 

अब जब आप / पर जाएँ, Account नियंत्रक के लॉग ऑन कार्रवाई होगी निष्पादित किया गया जो स्वयं ~/Views/Account/LogOn.cshtml व्यू प्रस्तुत करेगा।

+0

मैंने परिवर्तन किया और जब मैं ऐप चलाता हूं, तो मुझे 404 मिलते हैं। अगर मैं ऐप चलाता हूं और फिर http: // localhost: 64059/खाता/लॉगऑन/उपयोगकर्ता में टाइप करता हूं, हाँ मैं पैरामीटर में गुजर रहा हूं, मेरा लॉगऑन व्यू प्रकट होता है। मैं इसे कैसे ठीक कर सकता हूं इसलिए मुझे – BoundForGlory

+0

दिखाने के लिए मेरे लॉगऑन व्यू के लिए कोई टाइपिंग नहीं करना है यह अजीब है। यदि आपने परिवर्तन किया है और जब आप 'http: // localhost: 64059/'पर नेविगेट करते हैं तो आपके पास केवल यह रूट सेटअप होता है, इसे खाता नियंत्रक पर लॉगऑन क्रिया निष्पादित करना चाहिए (यह क्रिया मानते हुए)। –

+0

यह अस्तित्व में है। मेरा कोड बिल्कुल तुम्हारी तरह दिखता है, मैंने बस आईडी को डीबी में बदल दिया और यह है। – BoundForGlory

0

आप @RenderPage बजाय का उपयोग करना चाहिए कर सकते हैं। अधिक जानकारी के लिए इस link का पालन करें।

संबंधित मुद्दे