سؤال

ولقد شكلت مشروع ASP.NET MVC، وكل شيء عمل عظيم، ولكن لدي مشكلة واحدة مع التوجيه. بلدي Global.asax يبدو مثل هذا:

public static void RegisterRoutes(RouteCollection routes) {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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

وهكذا، لا شيء خارج عن المألوف. مشكلتي هي أنني عندما تصل إلى وحدة تحكم / العمل / بارامس مع HTML.ActionLink مثل ذلك:

<%= Html.ActionLink("My link", "SomeAction", "SomeController", new {param="someParam"})%>

وعليه ينبغي أن تولد (على الأقل ما المنطقي في رأسي) وصلة مثل: http://www.localhost/SomeController/SomeAction/someParam

ولكن بدلا من ذلك بإنشاء ارتباط من هذا القبيل: http://localhost/SomeController/SomeAction?param=someParam

إذا كنت يدويا جعل وجود صلة تربط إلى النتيجة المتوقعة (SomeController / SomeAction / someParam) ثم تسمى وحدة تحكم الصحيح، والعمل، ولكن المعلمة المحددة في طريقة العمل هو دائما فارغة.

وأي أفكار؟

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

المحلول

وأعتقد أن هذا الارتباط لا تستخدم سوى المسار الافتراضي مثل تتوقع إذا تم id اسم المعلمة بدلا من param. سيكون لديك لإنشاء مسار مختلف إذا كنت ترغب في توفير بعض معلمة أخرى هناك.

نصائح أخرى

ومحاولة مضيفا:

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