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