有人可以建议我如何绑定MVC Razor视图中的下拉列表。我正在使用MVC 4.我有一个不受任何模型类绑定的视图。
public class Util {
public List<EmployeeType> GetEmpTypes() {
return (new List<EmployeeType>(){
new EmployeeType(){ID=101, Text="Permanent"},
new EmployeeType(){ ID=102, Text="Temporary"}
});
}
}
public class EmployeeType {
public int ID { get; set; }
public string Text { get; set; }
}
我有这个示例代码。我不熟悉MVC Now之后我不知道如何将GetEmployeeTypes()
Method返回的集合绑定到下拉列表
答案 0 :(得分:1)
您的课程
public class Util {
public List<EmployeeType> GetEmpTypes() {
return (new List<EmployeeType>(){
new EmployeeType(){ID=101, Text="Permanent"},
new EmployeeType(){ ID=102, Text="Temporary"}
});
}
}
您的具有属性的模型类
public class EmployeeType {
public int ID { get; set; }
public string Text { get; set; }
}
这是示例操作
public ActionResult ViewName()
{
Util xxx=new Util();
List<SelectList> SelectedItems =new List<SelectList>();
List<EmployeeType> items =xxx.GetEmpTypes();
foreach (var t in items )
{
SelectListItem s = new SelectListItem();
s.Text = t.Text;
s.Value = t.ID;
SelectedItems.Add(s);
}
ViewBag.xxxxx= SelectedItems;
return view();
}
在视图中
@Html.DropDownList("xxxxx", new SelectList(ViewBag.xxxxx, "Text", "Value"))
以上代码就像一个密钥,我没有测试该代码是否成功运行。你可以知道如何从我的代码绑定下拉列表。
答案 1 :(得分:1)
我有一个像这样的类来获取所有EmployeeTypes
public class Util
{
public List<EmployeeType> GetEmpTypes()
{
return (new List<EmployeeType>(){
new EmployeeType(){ID=101, Text="Permanent"},
new EmployeeType(){ ID=102, Text="Temporary"}
});
}
}
public class EmployeeType
{
public int ID { get; set; }
public string Text { get; set; }
}
在Controller中,我编写了代码来获取员工类型列表
Util obj = new Util();
var v = obj.GetEmpTypes();
ViewBag.EmployeeTypes = v;
return View();
在视图中我编写了用于绑定下拉列表的代码。
@Html.DropDownList("EmployeeTypes",new SelectList(ViewBag.EmployeeTypes,"ID","Text"));
谢谢@Ramesh Rajendran(现在我理解了绑定下拉列表的概念)
答案 2 :(得分:1)
* 强文 *你应该像这里一样创建模型选择列表:
public static List<EmployeeType> GetEmpTypes() {
return (new List<EmployeeType>(){
new EmployeeType(){ID=101, Text="Permanent"},
new EmployeeType(){ ID=102, Text="Temporary"}
});
}
public static SelectList GetMyEmpTypes
{
get { return new SelectList(GetEmpTypes(), "ID", "Text"); }
}
然后在下拉列表中访问此方法,如
@Html.DropDownList("Name",yourProjectNameSpace.Util.GetMyEmpTypes())
当您提交表单时,它会使用“名称获得发布到控制器”的价值进行出价。
答案 3 :(得分:0)
没有必要与模型类绑定。您可以使用您在视图中给出的名称在控制器上接收值:
@Html.DropDownList("Name",yourProjectNameSpace.YourClass.GetEmpTypes())
现在您可以在控制器中重现名称值,如:
public ActionResult test(String Name)
{
return view();
}
并使您的方法保持静态,即GetEmpTypes(),以便您可以从视图中访问它。