Как подать входной сигнал отключен в ASP.NET в MVC?


Как отправить отключенный вход ASP.NET MVC?

8 81

8 ответов:

вы не можете сделать поле readonly="readonly" вместо disabled="disabled"? Значение поля только для чтения будет отправлено на сервер, но при этом не будет редактироваться пользователем. А тег является исключением.

спасибо всем:

Как я решил это:

document.getElementById("Costo").readOnly = true;
document.getElementById("Costo").style.color = "#c0c0c0";

Примечание:

Я получил эту информацию на ответ, но у меня былд.

@ppumkin упомянул об этом в своем комментарии ответ но я хотел бы выделить его, поскольку я не смог найти другие ресурсы по отправке данных из отключенного <select>. Я также считаю, что это имеет отношение к вопросу, как выбирает не <input>s но они являются "входными" s.

просто включите скрытое поле для отключенного выбора и его сортировки.

пример:

@Html.DropDownListFor(model => model.SelectedID, ... , new { disabled = "disabled"}) @* Won't be posted back *@
@Html.HiddenFor(model => model.SelectedID) @* Will be posted back *@

внимание: это позволит поставить два тега на странице с одинаковым идентификатором, который на самом деле не является допустимым HTML и может вызвать головные боли с javascript. Для меня у меня есть javascript, чтобы установить значение выпадающего списка по его html id, и если вы сначала поместите скрытое поле, javascript найдет это вместо select.

Как правило, если у меня есть поле, которое "только для чтения", но должно быть отправлено обратно на сервер, я сделаю отображение отключенным (или просто текст), но затем добавлю скрытое поле с тем же именем. Вам все равно нужно убедиться, что поле фактически не изменено на стороне сервера-просто не обновляйте его из модели в своем действии-но состояние модели все равно будет точным, если есть ошибки.

вы также можете использовать такой код перед отправкой формы:

$(":disabled", $('#frmMain')).removeAttr("disabled");

Вы можете создать шаблон редактора, как показано ниже

CSS

.disabled {
    background-color:lightgray;
}

Редактор Шаблонов

@model string
@Html.TextBoxFor(x => x,new {@class="disabled", @readonly=true })

когда мы имеем дело с отключенными, но отмеченными флажками, и мы хотим опубликовать значение, нам нужно убедиться, что наше скрытое поле появляется перед @Html.Флажок для скрытого поля.

ниже приведена ссылка, по которой я нашел ответ. http://davecallan.com/posting-disabled-checkboxes-mvc-razor-views/#comment-11033

просто сделайте это свойство [обязательно] в ViewModel, связанном с этим представлением.