MVC 4 @ HTML.DropdownlistFor onchange事件需要发送SelectedIndex值

时间:2016-05-25 15:50:25

标签: asp.net-mvc

我正在使用MVC 4并且有一个@ HTML.DropdownlistFor(),它根据它的选择加载页面的其余部分。在更改列表框时,我想重新加载页面,以便加载正确的数据。此外,还有两个其他参数可以正确加载页面。

在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 }))';

}

如果ID = 1,我想要DropdownlistFor(SelectedMissionID)的选定索引,我该怎么做?

我不确定这是否是转到控制器的最佳方式,或者如果我应该使用JQUERY .ajax帖子,还有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

我似乎非常适合ajax帖子。 你所做的就是OK,在ReloadPage()函数中,只需在DropDown中获取所选值,执行传递参数的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
      });