MVC Web サイト - ホームページのヘッダー セクションに、2 つのオプションを含むドロップダウンがあります。各オプションは、異なる Controller/ActionMethod にルーティングする必要があります。これはすべてのページのヘッダー セクションに配置する必要があるため、site.master ファイルに配置します。
ドロップダウン コード:
<%=Html.DropDownList("OneOrTwo",
new List<SelectListItem>
{
new SelectListItem{ Text="One", Value = "One" },
new SelectListItem{ Text="Two", Value = "Two" }
}
, new { @style = "background-color:#f00; border: none;", onchange =
"fnNum()" }
)%>
JavaScriptファイルには、ドロップダウンの選択に基づいて異なるコントローラー/アクションメソッドにルーティングするこれがあります。
function fnNum()
{
var e = document.getElementById("OneOrTwo");
var SelValue = e.options[e.selectedIndex].value;
if (SelValue == "One")
window.location.href = "Controller1/Index";
else
window.location.href = "Controller2/Index";
}
このアプローチには 2 つの問題があります。
選択が変更されると、新しく選択されたオプションは保持されません。Web ページに新しいコントローラー/アクション メソッド ビューが表示されている場合でも、ドロップダウンは元の選択に戻ります...
同じ選択を続けて選択すると、localhost:/Controller1/Index/Controller1/Index/etc..... に移動します。これを行うには、クリーンな方法が必要です。
だから私は2つのことが欲しい:
- 変更された選択を保持する必要があります。
- その後の選択では、コントロールは、コントローラー/インデックス/コントローラー/インデックスなどではなく、毎回コントローラー/インデックスに適切にルーティングされる必要があります。
助けてくれてありがとう。