1

我有以下由 jQuery ajax 提交的 html 表单。我似乎无法理解如何从我的控制器内部从输入文本框的 ' 中获取值。我本来希望 Request.Form["waitMinutes"] 可以工作,但它在我的控制器中出现为空。

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

<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) {
        ...
        });
4

1 回答 1

2

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

来自jQuery.serializable 文档(重点由我添加)

对于要包含在序列化字符串中的表单元素的值,该元素必须具有 name 属性

因此,只需提供您的输入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> 
于 2013-02-13T05:51:35.913 回答