asp.net mvc html Помощник выпадающего списка не выбирает опцию - PullRequest
0 голосов
/ 04 июля 2010

В моем контроллере я сгенерировал список SelectList, который я передаю помощнику раскрывающегося списка:

  <%= Html.DropDownList("abc123", Model.SomeList) %>

Я смотрю на строку запроса для значения, которое является идентификатором.

Затем я перебираю все элементы в списке SelectList и, если он равен ID, я делаю:

item.Selected = true;

Затем действие контроллера передает этот список SelectList представлению, а затем помощнику Html.

В режиме отладки я вижу, что значение действительно устанавливается в true, но HTML-код отображается без выбора элемента.

В чем может быть проблема?

Ответы [ 2 ]

2 голосов
/ 04 июля 2010

Я не знаю, что вы делаете неправильно, поскольку вы показали 0 кодов, но это определенно работает:

public ActionResult Index(int? id)
{
    var model = new SelectList(new[]
    {
        new { Id = 1, Name = "item 1" },
        new { Id = 2, Name = "item 2" },
    }, "Id", "Name", id);
    return View(model);
}

и, по вашему мнению:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<SelectList>" %>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

    <%= Html.DropDownList("abc123", Model) %>

</asp:Content>

Теперь, есливы переходите к /home/index/1 выбранному первому элементу, если вы переходите к /home/index/2 выбранному второму элементу.

Также, если вы используете ASP.NET MVC 2.0, я бы порекомендовал вам хелпер со строгой типизацией DropDownListFor вместо DropDownList.

0 голосов
/ 04 июля 2010

Кажется, это распространенная проблема MVC:

Html.DropDownListНе работает не так, как ожидается ASP.net MVC

...