在MVC4控制器中获取表单值

时间:2013-02-12 21:24:43

标签: jquery asp.net-mvc-4

我有以下html表单,由jQuery ajax提交。我似乎无法理解如何从控制器内部的输入文本框中获取值。我本来期望Request.Form [“waitMinutes”]能够正常工作,但它在我的控制器中出现了null。

从我的控制器中获取表单值的秘诀是什么?

<form method="post" action=@Url.Action("UpdateWaitTime", "Facilities")' data-ucw-updateWaitTimeForm="@facility.Id" style="display:none" >
    <input type="hidden" id='faciility' value="@facility.Id" />
    <input type="text" id="waitMinutes" value="0" style="width:15px" />
    <input type="submit" value="Update Wait Time" />
    <span class="UpdateMessage"></span>
</form> 

我的Jquery ajax提交代码是:

var ajaxUpdateWaitTime = function () {
        var $form = $(this);

        var options = {
            url: $form.attr('action'),
            type: $form.attr('method'),
            data: $form.serialize()
        };

        $.ajax(options).done(function (data) {
        ...
        });

1 个答案:

答案 0 :(得分:2)

如果您想将输入值发送回服务器,则需要给他们name(给他们一个id是不够的)。

来自jQuery.serializable ducumentation(由我添加的重点)

  

要使表单元素的值包含在序列化字符串中,元素必须具有名称属性

所以只需输入您的输入name,它应该可以正常工作:

<form method="post" action=@Url.Action("UpdateWaitTime", "Facilities")' 
      data-ucw-updateWaitTimeForm="@facility.Id" style="display:none" >
    <input type="hidden" name='faciility' id='faciility' value="@facility.Id" />
    <input type="text" name="waitMinutes" id="waitMinutes" value="0" 
           style="width:15px" />
    <input type="submit" value="Update Wait Time" />
    <span class="UpdateMessage"></span>
</form>