سؤال

وصفحة ASP.net أنا أعمل حاليا على ديها انخفاض القائمة التي تهدف إلى الحصول على قائمة من المرشحات أسفل. عندما يقوم المستخدم بتحديد مرشح، وأود أن عرض عنصر تحكم المستخدم الذي لديه الخصائص الملائمة للمرشح.

وهنا هو عمل تحكم في السؤال التالي:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(FormCollection collection)
{
  var filterType =  Request.Form["FilterSelect"];
  ViewData["FilterChosen"] = filterType;
  PopulateSelectionFiltersData();//This method fills up the drop down list
  //Here is where I would like to switch based on the filterType variable
  return View();
}

ومتغير نوع فلتر لديه القيمة الصحيحة، ولكن أنا متأكد بشأن كيفية قيام الجزء القادم.

وأيضا، باعتبارها مسألة طبيعية، ما من شأنه أن يكون أفضل وسيلة للاستمرار انخفاض قيمة المحدد إلى الأسفل بين المكالمات؟

وشكرا جزيلا،

وKevDog

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

المحلول

وتخزين السيطرة الصحيحة لعرضها في ViewData. أما بالنسبة لاستمرار القوائم، اختياراتك هي ذاكرة التخزين المؤقت (تستخدم من قبل العديد من الدورات)، الدورة (تستخدم فقط من قبل هذه الدورة)، أو TempData (تستخدم فقط للأسلوب القادم في هذه الدورة). بدلا من ذلك، هل يمكن أن يكون ذلك مؤقتا في المتغير dataLayer الخاص بك. عادة، أنا فقط refetch البيانات حتى يصبح مشكلة الأداء - التي عادة لا

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(FormCollection collection)
{
  var filterType =  Request.Form["FilterSelect"];
  ViewData["FilterChosen"] = filterType;
  PopulateSelectionFiltersData();//This method fills up the drop down list

  string userControl = "DefaultControl";
  switch (filterType)
  {
      case "TypeA":
         userControl = "TypeAControl";
         break;
      ...
  }

  ViewData["SelectedControl"] = userControl; 
  return View();
}


 <% Html.RenderPartial( ViewData["SelectedControl"], Model, ViewData ); %>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top