لماذا ASP.NET MVC تجاهل بلدي زائدة مائل؟
-
06-07-2019 - |
سؤال
والنظر في المسار التالي:
routes.MapRoute(
"Service", // Route name
"service/", // URL with parameters
new {controller = "CustomerService", action = "Index"} // Parameter defaults
);
وعن طريق Url.Action("Service", "CustomerService")
تنتج رابط من /service
بدلا من /service/
المتوقع
هل هناك أي طريقة للحصول على هذا العمل، أو هل تضطر الى اللجوء الى تنفيذ بلدي التوجيه الخاصة المستمدة من RouteBase
؟
المحلول
وLegenden - لا يوجد حل فوري لهذه المشكلة. كنت قد تشغيل عبر بلوق وظيفة جايسون يونغ أ > حول هذه المسألة، وهي مفيدة للغاية. سكوت Hanselmann نشر الرد لأنه هنا، مشيرا إلى أنه في الأساس لا أعتقد أنه كان صفقة كبيرة، وإذا كان كذلك، يمكنك الاستفادة من وحدة IIS7 كتابة جديدة لحلها.
وعلى الرغم من النهاية، قد ترغب في النظر في الحل الذي تم نشره من قبل مراد على سؤال مماثل على ستاكوفيرفلوو: <لأ href = "https://stackoverflow.com/questions/154295/trailing-slash-on-an -asp-الصافية للMVC مسار "> زائدة مائلة على MVC ASP.NET الطريق
نصائح أخرى
في الحدث تحميل الصفحة الخاصة بك إضافة:
Dim rawUrl As String = HttpContext.Current.ApplicationInstance.Request.RawUrl
If Not rawUrl.EndsWith("/") Then
HttpContext.Current.ApplicationInstance.Response.RedirectPermanent(String.Format("~{0}/", rawUrl))
End If