كيف يمكنني إنشاء URL ودية في ASP.NET MVC?
-
03-07-2019 - |
سؤال
كيف يمكنني إنشاء عناوين المواقع الصديقة داخل ASP.NET MVC الإطار ؟ على سبيل المثال لدينا URL التي تبدو مثل هذا:
http://site/catalogue/BrowseByStyleLevel/1
1 هو معرف من دراسة المستوى (أعلى في هذه الحالة) إلى تصفح, ولكن أنا ليل مثل لإعادة URL في نفس الطريق ستاكوفيرفلوو يفعل ذلك.
على سبيل المثال هذين عناوين المواقع سوف يأخذك إلى نفس المكان:
https://stackoverflow.com/questions/119323/nested-for-loops-in-different-languages
تحرير: ودية جزء من url يشار سبيكة.
المحلول
هناك نوعان من الخطوات لحل هذه المشكلة.أولا إنشاء طريق جديد أو تغيير المسار الافتراضي لقبول معلمة إضافية:
routes.MapRoute( "Default", // Route name
"{controller}/{action}/{id}/{ignoreThisBit}",
new { controller = "Home",
action = "Index",
id = "",
ignoreThisBit = ""} // Parameter defaults )
الآن يمكنك كتابة ما تريد في نهاية URI و التطبيق سيتم تجاهله.
عند تقديم وصلات, تحتاج إلى إضافة "ودية" النص:
<%= Html.ActionLink("Link text", "ActionName", "ControllerName",
new { id = 1234, ignoreThisBit="friendly-text-here" });
نصائح أخرى
هذا كيف نفذت الرصاصة URL على طلبي.ملاحظة: الافتراضي Maproute لا ينبغي تغييره و أيضا طرق معالجتها في الترتيب الذي تمت إضافتها إلى قائمة الطريق.
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home",
action = "Index",
id = UrlParameter.Optional
} // Parameter defaults
);
routes.MapRoute("Place", "{controller}/{action}/{id}/{slug}", new { controller = "Place", action = "Details", id = UrlParameter.Optional,slug="" });
لديك مسار العالمية.asax
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = ""}
// Parameter defaults )
يمكنك تحديد المسار الخاص بك مثل :
هو وحدة تحكم فئة cs داخل وحدات تحكم مجلد.
يمكنك تحديد الهوية الخاصة بك - مع الاسم الذي تختاره.
نظام تمرير قيمة إلى actionResult الأسلوب.
يمكنك قراءة المزيد عن هذه الخطوة هنا : http://www.asp.net/learn/mvc/tutorial-05-cs.aspx