ASP.NET MVC 사용자 컨트롤을 동적으로 선택합니다
-
03-07-2019 - |
문제
현재 작업중 인 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에 캐시 할 수 있습니다. 일반적으로 데이터가 성능 문제가 될 때까지 데이터를 반영합니다. 일반적으로 그렇지 않습니다.
[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 ); %>
제휴하지 않습니다 StackOverflow