ASP MVC Pass jqWidget的选定值下拉到Controller

时间:2012-06-25 08:35:50

标签: jquery asp.net-mvc form-submit

我正在使用ASP.MVC的jqWidgets。我正在填写一个下拉列表,当提交表单时,我想在按下按钮时将下拉列表中的选定值传递给我的控制器。

如果我硬编码下面的值,一切正常:

@using (Html.BeginForm("GetRace", "Schedule", new { @id = "abc" },FormMethod.Post))    
{  
    <div id="okBtn">
         <input id="Search" type="submit" value="OK" />
    </div>        
}

我希望能够调用Javascript函数,如:

   function getListItem()
   {
     return selectItem;
   }

但是当我将BeginForm更改为

时,我似乎无法接到调用
   @using (Html.BeginForm("GetRace","Schedule",@ID = new {onsubmit = "return  (getListItem());" }))

1 个答案:

答案 0 :(得分:0)

您可以在表单中使用隐藏字段:

@using (Html.BeginForm("GetRace", "Schedule", new { id = "abc" }, FormMethod.Post, new { id = "myForm" }))
{
    @Html.Hidden("SelectedListItem")
    <div id="okBtn">
        <input id="Search" type="submit" value="OK" />
    </div>        
}

然后不引人注意地订阅此表单的.submit()事件并设置隐藏字段的值:

$(function() {
    $('#myForm').submit(function() {
        var selectedItem = 'some value that you will read from the dropdown';
        $('#SelectedListItem').val(selectedItem);
    });
});

甚至更好,只需将下拉列表放在表单中即可。这样您根本不需要使用任何javascript,并且在提交表单时,所选值将自动发布到控制器。