2011-03-04 6 views
0

私のモデルに接続されているDropdownlistforがあります。ページが読み込まれるとモデルは空ですが、モデルを更新するボタンがページにあります。私の問題は、私のドロップダウンリストが更新されないということです。MVC update jqueryを使用したDropdownlistfor

マークアップ:

@Html.DropDownList("ddlRaces", new SelectList(ViewBag.Races, "RaceId", "Name")) 
<input type="button" id="btnChangeRace" class="btnGo" value=" " /> 

@Html.DropDownListFor(m => m.Timers, new SelectList(Model.Timers, "TimerId", "StartTime"), "Velg timer:") 

スクリプト:

btnChangeRace.click(function() { 
    url = "/TimeMerger/GetTimers/?raceId=" + ddlRaces.val(); 
    $.get(url); 
}); 

分離コード:

[HttpGet] 
public ActionResult GetTimers(int raceId) 
{ 
    var timeMergeModel = new TimeMergerModel(); 
    timeMergeModel.Timers = TimerModel.GetTimers(raceId); 
    return View(timeMergeModel); 
} 
ここ
+0

btnChangeRaceおよびddlRacesの宣言を表示します。 –

答えて

0
$.get(url); 

あなたはAJAXリクエストを送信しているが、あなたは成功コールバックで何もしていません何も更新されません。成功コールバックさえありません。だから、成功コールバックを定義する必要があります。

$.get(url, function(result) { 
    // result here will represent the value returned by the server 
    // which in your case is HTML. So here you might need to update 
    // the relevant portion of your page. 
}); 

また、あなたのDropDownListFor定義が間違っています。第1引数と第2引数(Model.Timers)と同じモデル変数を使用しています。このヘルパーの最初の最初の引数は、リストではなくバインドするスカラープロパティでなければなりません。それは次のようになります。

SelectedTimerValueが選択された値を保持しますあなたのビューモデルのプロパティになり
@Html.DropDownListFor(
    m => m.SelectedTimerValue, 
    new SelectList(Model.Timers, "TimerId", "StartTime"), 
    "Velg timer:" 
) 

。最初のドロップダウンでDropDownListForの代わりにDropDownListを使用している理由もありますか?ビューモデルの全体のアイデアは、ビューが単にそれを表示するように必要なすべての情報を含むということです。

+0

thnx:ヘルプ – Arnstein

関連する問題