سؤال

هذا السؤال لديه بالفعل إجابة هنا:

أنا ألعب مع 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 دقائق.

القطع المائلة التي ترميز عناوين URL في عنوان URL

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top