سؤال

أحاول تقديم رابط لنتائج بحث المرشح.

    <%= Html.ActionLink("Filter Results", "Index", new { page = Model.RestaurantList.PageIndex(), searchText = Model.SearchText, useFilter = true, filterOption = Model.FilterOption, filterText = Model.FilterText }, null)%>

تعريف وحدة التحكم على هذا النحو

 public ActionResult Index(int? page, string searchText, bool useFilter, string filterText, string filterOption)

ومع ذلك ، عندما أقوم بتصحيح هذا ، لا يتم ضبط القيم بشكل صحيح ، حتى متغير USEFILTER.

يتم تقديم الرابط الخاص بي LocalHost/Home/Index/True؟ الصفحة = 0

أي أفكار كيفية إصلاح هذا؟

هل كانت مفيدة؟

المحلول

شريحة الكود تبدو جيدة. أعتقد أن هناك أخطاء محتملة:

  1. معلومات المسار الخاطئة: تحقق من ROUTES.MAPROUTE (...) المكالمات في ملف global.ascx.cs/vb للتأكد
  2. وحدة تحكم خاطئة: حاول استخدام الحمل الزائد لـ ActionLink الذي يحدد وحدة تحكم صراحة

إذا كنت لا تزال غير قادر على العمل ، فقد ترغب في نشر مزيد من المعلومات (مثل رمز رسم الخرائط ، اسم العرض/وحدة التحكم)

نصائح أخرى

يبدو أنه يجب أن يعمل.

هل قمت بالتحقق من أن حقول النموذج التي تنتقل إليها إلى ActionLink تحتوي بالفعل على بيانات؟

ومع ذلك ، عندما أقوم بتصحيح هذا ، لا يتم ضبط القيم بشكل صحيح ، حتى متغير USEFILTER. يتم تقديم الرابط الخاص بي LocalHost/Home/Index/True؟ الصفحة = 0

أعتقد أن معلمة useFilter الخاصة بك يتم تقديمها بالفعل. تم تعيينه على الطريق على ما أعتقد.

حاول تعيين قيمة متشددين لـ SearchText

إذا ظهر ، فلن تقوم بتعيين النموذج الخاص بك في وحدة التحكم.

كان لي موقف مشابه.

شيء من هذا القبيل:

Html.ActionLink("Click me", "Index", "Student", 
        { ID = theclass.StudentID }, null) 

تقدم دائما

localhost/myapp/Student/Index/1234

بينما كنت أجرب ، لاحظت ذلك Index اختفى جزء من عنوان URL إذا قمت بتغيير اسم المعلمة من ID لشيء مثل IDX

localhost/myapp/Student/?IDX=1234

اتضح أن اسم المعلمة ID هو خاص بسبب إدخال المسار الافتراضي في global.asax.cs (الذي يضع نمط الوصول إلى كائن الأعمال المريح)

للعمل حول هذا ، توقفت ببساطة عن استخدام Index لاتخاذ معرّف وبدلاً من ذلك حدد طريقة أخرى مثل هذا:

public ActionResult Detail(int ID)

بعد كل شيء ، حسب مبدأ التصميم Restfull ، Index يهدف إلى إظهار "قائمة كائنات الأعمال" أو نوع من مجموعة من كائنات العمل ، وليس كائن عمل واحد. لذا تمرير معرف كائن العمل إلى Index هو نوع من انتهاك النمط.

بدلاً من تحريف الذراع وأجبرت تصميمي المحرج ، تغيرت إلى الطريق الطبيعي.

أعتقد أن أفضل ممارسة للتصميم Index نقطة الدخول هي الاحتفاظ به بدون المعلمة ، أو تمرير معلمات الترشيح/الفرز فقط.

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