связыватель моделей с выпадающим списком в asp.net mvc - PullRequest
1 голос
/ 08 января 2009

Вот что я пытаюсь сделать:

У меня есть объект Task со свойством TaskName и свойством TaskPriority .

Теперь в HTML у меня есть:

<td><%=Html.TextBox("Task.TaskName") %></td>
<td><%=Html.DropDownList("Task.TaskPriority",new SelectList(ViewData.Model.TaskPriorities,"ID","PriorityName")) %></td>

Действие контроллера выглядит так:

public ActionResult Create(Task task){
    //task.TaskName has the correct value
    //task.TaskPriority is null - how should the html look so this would work ?
}

EDIT В приведенном ниже примере (из Schotime):

public class Task
{
    public int name { get; set; }
    public string value { get; set; } // what if the type of the property were Dropdown ?
       // in the example I gave the Task has a property of type: TaskPriority.
}

1 Ответ

0 голосов
/ 08 января 2009

Это должно работать.

Три класса:

    public class Container
    {
        public string name { get; set; }
        public List<Dropdown> drops { get; set; }
    }

    public class Dropdown
    {
        public int id { get; set; }
        public string value { get; set; }
    }

    public class Task
    {
        public int name { get; set; }
        public TaskPriority priority { get; set; }
    }

    public class TaskPriority
    {
        public string value { get; set; }
        ...
    }

Контроллер:

    public ActionResult Tasks()
    {
        List<dropdown> ds = new List<Dropdown>();
        ds.Add(new Dropdown() { id = 1, value = "first" });
        ds.Add(new Dropdown() { id = 2, value = "second" });

        ViewData.Model = new Container() { name = "name", drops = ds };

        return View();
    }

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Tasks(Task drops)
    {
        //drops return values for both name and value
        return View();
    }

Вид: строго типизированный Viewpage<Container>

<%= Html.BeginForm() %>
<%= Html.TextBox("drops.name") %>
<%= Html.DropDownList("drops.priority.value",new SelectList(ViewData.Model.drops,"id","value")) %>
<%= Html.SubmitButton() %>
<% Html.EndForm(); %>

Когда я отлаживал это работало как ожидалось. Не уверен, что ты делаешь неправильно, если у тебя есть что-то похожее на это. Приветствия.

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