MVC3 изменения не сохраняются, когда управление отключено - PullRequest
1 голос
/ 27 марта 2012

Я пытаюсь динамически отключать элементы управления 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>

jqueryscript

$("#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(); 
        });

theзначение для #ReadOnlyEffectiveDate не обновляет #EffectiveDate не обновляет, но сохранение по-прежнему не работает.

Ответы [ 2 ]

1 голос
/ 27 марта 2012

Поскольку вы находитесь в блоке else, вы можете просто переименовать текстовое поле во что-то, отличное от "EffectiveDate", тогда скрытое поле, которое у вас там будет, будет опубликовано, и механизм связывания модели будет знать, что использовать это значение скореечем отключенное текстовое поле.

1 голос
/ 27 марта 2012

Отключенные поля не публикуются.Если вам нужно увидеть, какие элементы управления отключены, вы можете использовать JQuery, чтобы включить их, а затем опубликовать их, а затем снова отключить в форме.

...