来自JQuery填充字段的值未绑定到MVC模型

时间:2018-07-26 13:12:15

标签: javascript jquery asp.net asp.net-mvc model-view-controller

我正在使用Razor使用ASP.NET MVC开发一个项目。表单在页面上完成加载后,我希望用户在输入中触发.on ('change')。一旦发生这种情况,就会执行AJAX调用,返回用户的数据,禁用并填充链接到模型属性的输入,这些模型的属性从开始时为空(加载页面时)开始。

数据正在填充,没有问题,但是当我将其发送回控制器进行处理时,与AJAX执行后填充的输入相对应的值将为空。

<div class="form-label-group col-md-4 mb-3">
    @Html.LabelFor(model => model.AttendeeName, new { @class = "upside-label", @for = "firstName" })
    @Html.EditorFor(model => model.AttendeeName, new { htmlAttributes = new { @class = "form-control", @id = "firstName", @placeholder = Resources.ResourcesPerson.PlaceholderPersonName } })
    @Html.LabelFor(model => model.AttendeeName, new { @class = "downside-label", @for = "firstName" })
    <div class="text-danger">
        @Html.ValidationMessageFor(model => model.AttendeeName)
    </div>
</div>

我尝试了以下操作但未成功:

$("input[name=AttendeeName]").attr('disabled', true);
$("input[name=AttendeeName]").val(data.AttendeeName).change()

谢谢您的帮助。

1 个答案:

答案 0 :(得分:2)

这是预期的行为。 disabled元素未以表单数据发送。

如果您仍然希望发送这些值,请不要禁用这些字段。假设您不希望用户编辑字段,请尝试尝试readonly

$('input[name="AttendeeName"]').prop('readonly', true);