我有一个简单的视图,用于编辑一些基本信息。如果不需要数据,则它们是“NA”复选框。
@Html.TextBoxFor(m => m.PersonInfo[i].Reference, "Enter a reference", new { disabled = Model.PersonInfo[i].NotApplicable })
@Html.CheckBoxFor(m => m.PersonInfo[i].NotApplicable, new
{
onclick = "ChangeEnabledState(" + i + ");"
})
当用户单击NA复选框时,它会调用一个禁用该人的所有控件的javascript函数。
我遇到以下情况的问题:
是否有一种更新viewmodel的简洁方法,因此在上述方案中不会禁用这些字段。我已经尝试了一个jquery document.ready来检查checbox并启用/禁用,但觉得必须有一个更优雅的解决方案。
答案 0 :(得分:0)
如果使用Ajax表单,则会有一个名为AjaxOptions的参数。对于AjaxOptions,您可以定义OnBegin,OnSucces,OnComplete,OnSucces,OnFailure。
在这里,您可以传入一个javascript函数,该函数在请求开始时或完成时调用,或者在您的问题中验证失败时调用。
@using (Ajax.BeginForm("MethodName", "ControllerName", new AjaxOptions { OnFailure="EnableForm()" })