我有以下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) {
...
});
答案 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>