معرف مع / يسبب مشاكل في التوجيه [مكررة
-
28-09-2019 - |
سؤال
هذا السؤال لديه بالفعل إجابة هنا:
أنا ألعب مع Raven DB و MVC 2. بشكل افتراضي ، سيكون المعرف في Raven على سبيل المثال "اقتراحات/1234" لكيان يسمى الاقتراح.
هذا يسبب مشاكل في التوجيه عندما أكتب مثل هذا:
<%: Url.Action("Delete", "Suggestion", new { id = suggestion.Id }) %>
سيكون عنوان URL/اقتراح/حذف/اقتراحات/14337 الذي لن ينجح.
هل يمكن حل هذا في التوجيه ، أو هل يجب علي تغيير تنسيق المعرف في الغراب؟ وكيف أفعل ذلك؟
المحلول
تغيير طريقك من {controller}/{action}/{id}
إلى {controller}/{action}/{*id}
. وهذا ما يسمى طريق "Catch-Coll" ؛ المزيد من التفاصيل على MSDN.
بدلاً من ذلك ، يمكنك تمرير id
كمعلمة استعلام.
نصائح أخرى
لن تكون قادرًا على تشفير القطع المدمجة للأمام افتراضيًا.
قم بتغيير المعرف إلى الاقتراحات _1234 أو محاولة استخدام هذا الإعداد:
<uri>
<schemeSettings>
<add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes" />
</schemeSettings>
</uri>
لم أتحقق مما إذا كان إعداد التكوين يعمل بعد. ولا يمكنني فعل ذلك الآن لأن كرة القدم تبدأ في 5 دقائق.