ASP.NET MVC URL التوجيه لا تعطيني عناوين جميلة
-
03-07-2019 - |
سؤال
ولقد شكلت مشروع 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
);