Pergunta

Eu tenho um aplicativo MVC via SharpArch.Na visão eu tenho:

 Html.DropDownListFor(x => x.Location, 
     new SelectList(Model.PossibleLocations, "Id", "Address"), 
     "-- No Location --")

Eu tenho 2 problemas.

  1. O menu suspenso não é atualizado quando a visualização é vinculada ao modelo.
  2. Uma seleção é persistida corretamente, exceto quando tento o topo "sem localização".

Consegui cuidar do primeiro ponto alterando x.Location para x.Location.Id, mas tive outros problemas.

Posso encontrar muitos exemplos para DropDownList, mas nenhum em que seja mostrado salvar um nulo.

Qualquer ajuda é apreciada.

Obrigado

ATUALIZAR:

Acabei de atualizar o Resharper (uma pequena atualização) e estou sendo solicitado a preenchê-lo DropDownListFor.Por que isso faria diferença?Estava funcionando o suficiente para ligar e agora não funciona mais.

Foi útil?

Solução

Você sempre pode inserir o "vazio" SelectListItem dentro de voce PossibleLocations coleta antes de passar para o View e verifique o valor "vazio" (0 por exemplo) quando o formulário for postado

model.PossibleLocations.Insert(0, 
    new SelectListItem() { Text = "-- No Location --", Value = "0" };

Outras dicas

Tente "nivelar" sua classe de modelo para que LocationId seja o valor real ao qual você está vinculando (ou seja,adicione uma propriedade "LocationId" ao seu modelo e crie um DropDownList para x => x.LocationId).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top