Как использовать DropDownList в ASP.NET MVC 3 - PullRequest
0 голосов
/ 23 февраля 2011

Я новичок в MVC и пытаюсь заполнить DropDownList, на мой взгляд, списком «правил» из моего контроллера.Когда я делаю это, как указано в списке, я просто получаю выпадающий список с кучей элементов, которые говорят CellularAutomata.Models.Rules.Я знаю, что делаю это неправильно, мне просто интересно, как я могу отобразить описание правила для каждого правила в выпадающем списке.

У меня есть модель

public class Rule
{
    public int ID { get; set; }
    public int Name { get; set; }
    public string Description{ get; set; }

    public Rule(int name, string description)
    {
        Name = name;
        Description = description;

    }
    public Rule()
    {
        Name = 0;
        Description = "";
    }
}

AКонтроллер

    public ActionResult Index()
    {
        var rules = from rule in db.Rules
                    select rule;

        return View(rules.ToList());
    }

И просмотр

@model IEnumerable<CellularAutomata.Models.Rule>

@{
    ViewBag.Title = "Index";
}
<h2>Index</h2>

<table>
    <tr>
        <td>
            @Html.DropDownList("Test", new SelectList(Model))
        </td>
    </tr>
</table>

1 Ответ

4 голосов
/ 23 февраля 2011

Вы можете посмотреть модель:

public class MyViewModel
{
    public string SelectedRuleId { get; set; }
    public IEnumerable<Rule> Rules { get; set; }
}

и затем в вашем контроллере:

public ActionResult Index()
{
    var model = new MyViewModel
    {
        Rules = db.Rules
    };
    return View(model);
}

и в представлении:

@model CellularAutomata.Models.MyViewModel
@{
    ViewBag.Title = "Index";
}
<h2>Index</h2>

@Html.DropDownListFor(
    x => x.SelectedRuleId, 
    new SelectList(Model.Rules, "ID", "Description")
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...