/ / Quando dropdownlitFor está desativado, o valor sempre é passado como 0 - html5, asp.net-mvc-4, razor, html.dropdownlistfor

Quando dropdownlitFor está desabilitado, o valor sempre é passado como 0 - html5, asp.net-mvc-4, razor, html.dropdownlistfor

Este é meu dropdownlistFor

@Html.DropDownListFor(m => m.objTicket.DepartmentId, new SelectList(Model.objTicket.Departments, "DepartmentId", "Department"),
"-- Select Department--", new { id = "Deptment"}, disabled="disabled")

Como posso passar o valor que já está armazenado em objTicket.DepartmentId ?

Se eu alterar remover desativado = "desativado", recebo meu valor correto.

Respostas:

2 para resposta № 1

Campos de formulário são enviados usando nomes em vez de IDs. Valores de controles desativados não serão enviados pelos navegadores. Colocar um @Html.HiddenFor campo com o mesmo nome e IDs diferentes, conforme indicado abaixo.

@Html.DropDownListFor(m => m.objTicket.DepartmentId, new SelectList(Model.objTicket.Departments, "DepartmentId", "Department"),Department--", new { id = "Deptment"}, disabled="disabled")
@Html.HiddenFor(m => m.objTicket.DepartmentId, new { id="Deptment2" })