Раскрывающийся список в ASP.NET MVC2 - PullRequest
0 голосов
/ 25 сентября 2010

В моей модели у меня есть это:

 public class CustomerModel
    {
        public Customer Customer { get; set; }
        public Language Language { get; set; }

        public IList<Language> Languages { get; set; }

        public CustomerModel()
        {
            Language = new Language();
        }
    }

На мой взгляд, у меня есть это:

<%: Html.DropDownList("Id", new SelectList(Model.Languages, "Id", "Code"))%>

это работа

Но я бы хотелкогда я делаю отправку, мне нужно установить Model.Language.Id на выбранное значение. Я пытался это сделать, но это не сработало:

<%: Html.DropDownList(m => m.Language.Id, new SelectList(Model.Languages, "Id", "Code"))%>

Updat1: я использовал это решение, все в порядке

Когда я выбираю клиента, я хотел бы видеть изменение языка в зависимости от языка клиента, я сделал следующее:

<%: Html.DropDownList("Language", new SelectList(ViewData.Model.Languages, "Id", "Code", ViewData.Model.Customer.Language.Id)) %> 

ничего не происходит, я все еще вижу первый язык в списке, а не клиентязык.Данные в контроллере верны

Спасибо,

Ответы [ 2 ]

1 голос
/ 25 сентября 2010

использовать строго типизированный html-помощник DropDownListFor

<%: Html.DropDownListFor(m => m.Language.Id, new SelectList(Model.Languages, "Id", "Code"))%>
0 голосов
/ 25 сентября 2010

Это прекрасно работает для меня (вам нужно использовать Html.DropDownListFor помощник, если вы хотите передать лямбда-выражение):

Модель:

public class Language
{
    public int Id { get; set; }
    public string Code { get; set; }
}

public class CustomerModel
{
    public Language Language { get; set; }
    public IList<Language> Languages { get; set; }

    public CustomerModel()
    {
        Language = new Language();
        Languages = new List<Language>
        {
            new Language { Id = 1, Code = "en" },
            new Language { Id = 2, Code = "fr" },
        };
    }
}

Контроллер:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View(new CustomerModel());
    }

    [HttpPost]
    public ActionResult Index(CustomerModel model)
    {
        return View(model);
    }
}

Вид:

<% using (Html.BeginForm()) { %>
    <%: Html.DropDownListFor(
        x => x.Language.Id, 
        new SelectList(Model.Languages, "Id", "Code")
    ) %>
    <input type="submit" value="OK" />
<% } %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...