2016-05-25 11 views
0

MVC 4を使用していて、その選択に基づいて残りのページを読み込む@ HTML.DropdownlistFor()があります。リストボックスが変更されたら、正しいデータを読み込むようにページをリロードします。同様に、ページを正しく読み込むために必要な2つのパラメータがあります。それはID = 1と言うMVC 4 @HTML.Dropdownlist onchangeイベントでSelectedIndex値を送信する必要があります

Create.cshtmlビューで

@Html.DropDownListFor(model => model.SelectedMissionID, Model.MissionsToDisplay, new { onchange = "ReloadPage();" }) 

function ReloadPage() { 
    window.location = '@Html.Raw(Url.Action("CreateEdit", "DailyLog", new { ID = 1, ID2 = 0, dailyLogDate = Model.LogDate }))'; 

} 

、私はこれを得るのですか、DropdownlistFor(SelectedMissionID)の選択されたインデックスをしたいですか?

これがコントローラに行く最善の方法であるかわからない、またはJQUERY .ajax投稿を使用する必要がある場合は、より良い方法がありますか?

答えて

0

私はajax投稿には理想的なようです。 ReloadPage()関数の内部でOKです。ドロップダウンで選択した値を取得し、パラメータを渡すAjax呼び出しを行い、返されたHTMLをいくつかのコンテナに入れます。

アイデアは、すべてのページではなく、Ajaxコールの戻り値でビューの一部を置き換えることです。

はjQueryを使用して、選択された値を取得するには:

var selectedValue = $("select[name='SelectedMissionID']").val(); 

そして、それはあなたのReloadPage()関数に配置することができます。

$.post("your action URL", { ID: selectedValue, OtherParam: "xxxxx" }) 
     .done(function(data) { 
     alert("Data Loaded: " + data); 
//here you need to get the HTML, and put in a container 
     }); 
+0

私はそのような選択値を得ることができますが、それをどのようにパラメータリストに入れますか?ありがとう! – Dean

+0

回答の確認 – Romias

+0

値を送信するためにajax投稿を使用する方が良い結果が得られました。 – Dean

関連する問題