سؤال

وأنا أعمل على مشروع جديد حيث أريد استخدام فيل مناطق هاك (1) فكرة + قرص ستيف ساندرسون (2). لدي وجهة نظر الجذر بسيط مع وصلة العمل إلى وجهة نظر منطقة (فو). وURL الذي تم إنشاؤه لديه مساحة مناسبة، ولكنه يلحق وحدة تحكم الجذر (بار) في نهاية المطاف. وهنا قال لي كود عرض الجذر:

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

<h2>Index</h2>

<%= Html.ActionLink("Foo Index Page", "Index", new { area="Foo" } )%>

</asp:Content>

وهنا يكمن URL أنه يولد:

ومضيف محلي: 6494 / فو / بار

وأي فكرة لماذا "/ بار" هو هناك؟

و(1): haacked.com/archive/2008/ 04/11 / المناطق في aspnetmvc.aspx

و(2): بلوق .codeville.net / 2008/11/05 / التطبيق والمناطق في وASPNET-MVC-تك-2 /

هل كانت مفيدة؟

المحلول

ولقد وجدت الحل. لا أعتقد أنه من المناسب، ولذا فإنني سوف أطلب تحسنا. عن طريق تحديد اسم وحدة تحكم، ويمكن الحصول على URL لتشكيل صحيح. أي بمعنى.

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

<h2>Index</h2>

<%= Html.ActionLink("Foo Index Page", "Index", new { area="Foo", controller="Baz" } )%>

</asp:Content>

وعندما فعلت ذلك، ثم كان URL الصحيح

ومضيف محلي: 6494 / فو

لماذا هذه المشكلة؟ يستخدم تجريبي فيل وحدة تحكم مع HomeController الاسم. أنا لا أعرف (لأنني لا يمكن أن تتبع) كيف يذهب طريقة Html.ActionLink () حول تشييد URL. ولكن يبدو كما لو أنها تعتمد على الحالة الافتراضية من HomeController القائمة، وهو ما لم يكن لديك.

وإذا كان أي شخص لديه اقتراح حول كيفية السماح للتحكم عدم نشر اسمه الرئيسية لتكون الافتراضي، يرجى الرد. بفضل

نصائح أخرى

ليكن لديك Home كاسم تحكم الافتراضية، وذلك ببساطة <لأ href = "https://stackoverflow.com/questions/849624/asp-net-actionresult-parameter-is-coming-back-null-always-when -passing سلسلة / 849666 # 849666 "> تغيير المسار الافتراضي .

وJoe

في App_Start الخاص / ملف RouteConfig.cs لديك لتغيير القيمة للتحكم الافتراضية من المنزل إلى ما تريد:

routes.MapRoute(
            "Default",                                              // Route name
            "{controller}/{action}/{id}",                           // URL with parameters
            new { controller = "NAME_OF_YOUR_HOME_CONTROLLER", action = "Index", id = "" }  // Parameter defaults
        );
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top