Asp.net mvc asp.net mvc中带dropdownlist的modelbinder
以下是我想做的: 我有一个具有TaskName属性和TaskPriority属性的实体Task 现在,在html中,我有:Asp.net mvc asp.net mvc中带dropdownlist的modelbinder,asp.net-mvc,Asp.net Mvc,以下是我想做的: 我有一个具有TaskName属性和TaskPriority属性的实体Task 现在,在html中,我有: <td><%=Html.TextBox("Task.TaskName") %></td> <td><%=Html.DropDownList("Task.TaskPriority",new SelectList(ViewData.Model.TaskPriorities,"ID","PriorityName")) %>
<td><%=Html.TextBox("Task.TaskName") %></td>
<td><%=Html.DropDownList("Task.TaskPriority",new SelectList(ViewData.Model.TaskPriorities,"ID","PriorityName")) %></td>
编辑
在下面的示例中(从Schotime开始):
这应该行得通
三类:
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; }
...
}
公共类容器
{
公共字符串名称{get;set;}
公共列表删除{get;set;}
}
公共类下拉列表
{
公共int id{get;set;}
公共字符串值{get;set;}
}
公开课任务
{
公共int名称{get;set;}
公共任务优先级{get;set;}
}
公共类任务优先级
{
公共字符串值{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();
}
public ActionResult任务()
{
List ds=新列表();
Add(new Dropdown(){id=1,value=“first”});
Add(new Dropdown(){id=2,value=“second”});
ViewData.Model=newcontainer(){name=“name”,drops=ds};
返回视图();
}
[接受动词(HttpVerbs.Post)]
公共操作结果任务(任务删除)
{
//删除名称和值的返回值
返回视图();
}
视图:强类型Viewpage
当我调试时,它按预期工作。
如果你有类似的事情,我不确定你做错了什么。
干杯。你是说任务优先级是一门课吗??如果是这样,则需要为dropdownlist名称指定Task.TaskPriority.PropertyName。这确实有效:)。请编辑您的答案,以便我可以接受。
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();
}
<%= Html.BeginForm() %>
<%= Html.TextBox("drops.name") %>
<%= Html.DropDownList("drops.priority.value",new SelectList(ViewData.Model.drops,"id","value")) %>
<%= Html.SubmitButton() %>
<% Html.EndForm(); %>