Tenho um modelo chamado Pessoa criado pelo Entity Framework, nesse modelo ele faz referência a tabela PessoaSituacao. Na tela de cadastro de pessoa, coloquei um atributo da seguinte forma:
<%= Html.LabelFor(m => m.PessoaSituacao) %>
<%= Html.EditorFor(m => m.PessoaSituacao) %>
<%= Html.ValidationMessageFor(m => m.PessoaSituacao, "*")%>
Também criei um template para esse tipo de dado da seguinte forma:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyProject.Data.PessoaSituacao>" %>
<%@ Import Namespace="MyProject.Mvc" %>
<%= Html.DropDownListPessoaSituacao("IdPessoaSituacao", Model) %>
O código que gera o DropDownList ficou assim:
public static MvcHtmlString DropDownListPessoaSituacao(this HtmlHelper html, string name, PessoaSituacao selected)
{
MyEntities db = new MyEntities();
SelectList list = new SelectList(db.PessoaSituacao.OrderBy(x => x.Nome), "IdPessoaSituacao", "Nome", selected == null ? -1 : selected.IdPessoaSituacao);
return html.DropDownList(name, list, "-- selecionar --");
}
Porque eu não consigo postar o formulário com o valor do DropDownList sem estar selecionário já que no banco ele aceita null?