Como definir o valor padrão para selecionar a lista no MVC durante o tempo de execução
Eu tenho uma visão em que ele percorre o modelo e exibe os detalhes no modo editável. Um dos valores do modelo é de uma lista de seleção como abaixo
@if (Model != null)
{
for (int i = 0; i < Model.provider_service_dtls.Count; i++)
{
<tr>
<td> @Html.DropDownListFor(m => m.provider_service_dtls[i].activity_code_type,
(SelectList)@ViewBag.activity_code_type, "--- Select Activity Code Type ---", new { @class = "m-wrap" })</td>
<td>@Html.TextBoxFor(m => m.provider_service_dtls[i].activity_name)</td>
</tr>
}
}
Aqui oViewBag.activity_code_type
contém os valoresInternal & Standard
ao enviar se o usuário selecionouInternal
seu valor1
passará para o controlador e seStandard
será2
e aqui o valor padrão será"--- Select Activity Code Type ---"
Agora, quando abro a mesma solicitação no modo de edição, se o valor do modelo paraprovider_service_dtls[i].activity_code_type
é1
a lista de seleção deve ser padrão, selecione comoInternal
eStandard
se for2
.
Eu codifiquei assim
@Html.DropDownListFor(m => m.provider_service_dtls[i].activity_code_type,
(SelectList)@ViewBag.activity_code_type, Model.provider_service_dtls[i].activity_code_type)
Mas não está funcionando como o esperado, está dando o resultado como na figura abaixo
Aqui deve ser selecionado como padrãoInternal
. Qual é a mudança para conseguir o mesmo?
Editado
Modelo
public partial class provider_service_dtls
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long service_id { get; set; }
public long preapproval_id { get; set; }
public string activity_code_type { get; set; }
public string activity_type { get; set; }
public string activity_type_name { get; set; }
public string activity_code { get; set; }
public string activity_name { get; set; }
public string internal_activity_code { get; set; }
public string internal_activity_name { get; set; }
[ForeignKey("preapproval_id"), InverseProperty("provider_service_dtls")]
public virtual provider_preapproval preapproval { get; set; }
}
Modelo de editor
@model Provider.Models.provider_preapproval
@Html.DropDownListFor(m => m.activity_code_type, (SelectList)ViewData["options"])
Visão
Dentro do loop for eu codifiquei assim
@Html.EditorFor(m => m.provider_service_dtls,
new { options = (SelectList)@ViewBag.activity_code_type })
Estou recebendo um erro
'System.Web.Mvc.HtmlHelper' não contém uma definição para 'EditorFor' e a melhor sobrecarga do método de extensão 'System.Web.Mvc.Html.EditorExtensions.EditorFor (System.Web.Mvc.HtmlHelper, System.Linq.Expressions .Expression>, string, object) 'possui alguns argumentos inválidos