Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 禁用受控时MVC3更改不保存_Jquery_.net_Asp.net Mvc 3_Permissions_Form Helpers - Fatal编程技术网

Jquery 禁用受控时MVC3更改不保存

Jquery 禁用受控时MVC3更改不保存,jquery,.net,asp.net-mvc-3,permissions,form-helpers,Jquery,.net,Asp.net Mvc 3,Permissions,Form Helpers,我正在尝试根据用户的权限动态禁用MVC3控件。它工作正常,并在进行更改时自动设置为默认值。但在单击“提交”按钮后保存时,不会保存任何更改。这仅在禁用控件时发生 *更新* <div class="editor-field"> @if (!disabled) { @Html.TextBox("EffectiveDate", Model.EffectiveDat

我正在尝试根据用户的权限动态禁用MVC3控件。它工作正常,并在进行更改时自动设置为默认值。但在单击“提交”按钮后保存时,不会保存任何更改。这仅在禁用控件时发生

*更新*

<div class="editor-field">
                    @if (!disabled)
                    {

                        @Html.TextBox("EffectiveDate", Model.EffectiveDate.FormatShortDate(), new { @class = "date" })
                    }
                    else
                    {
                        @Html.TextBox("ReadOnlyEffectiveDate", Model.EffectiveDate.FormatShortDate(), new { @class = "date", @disabled = "disabled" })
                        @Html.HiddenFor(m => m.EffectiveDate)
                    }
                    @Html.ValidationMessageFor(model => model.EffectiveDate)
                </div>

#ReadOnlyEffectiveDate的值不更新#EffectiveDate的值更新,但保存仍不起作用。

禁用的字段不会回发。如果需要查看哪些控件被禁用,可以使用JQuery启用它们,然后将它们发回,然后在表单中再次禁用它们

由于您位于
else
块中,您可以将文本框重命名为
以外的其他内容,而不是
“EffectiveDate”
,然后,您在那里的隐藏字段将被发布,模型绑定器将知道使用该值,而不是禁用的文本框。

禁用的字段值不获取postedIt看起来不像是禁用它们,只是使它们成为只读。这似乎也不起作用。将在上面发布更改
$("#DistributionId").change(function () {
            var currentYear = (new Date).getFullYear();
            $("#TermDate").val("12/31" + currentYear);
            $("#EffectiveDate").val("01/01/" + (currentYear + 1));
            $("#ReadOnlyEffectiveDate").val("01/01/" + (currentYear + 1));
            $("#EffectiveDate").change(); 
        });