2012-12-17 58 views

回答

0

尽量避免使用像ViewBagViewData和动态工具和操作方法,并在视图之间传输数据。使用强类型的视图模型。

假设你的看法是创建一个新的课程,其中用户必须选择从主题列表中选择一个主题,像这样创建

public class CourseVM 
{ 
    public List<SelectListItem> Subjects { set;get;} 
    public int SelectedSubject { set;get;} 
    public CourseVM() 
    { 
    Subjects=new List<SelectListItem>(); 
    } 
} 

而在你GET动作视图模型,创建一个对象你查看模型并填写“主题”属性。

public ActionResult Create() 
{ 
    var vm=new CourseVM(); 
    //the below is for demo. replace with database data 
    vm.Subjects.Add(new SelectListItem{ Value="1", Text="Maths"}); 
    vm.Subjects.Add(new SelectListItem{ Value="2", Text="English"}); 
    return View(vm); 
} 

现在在您的视图中,强烈键入您的视图模型。

@model CourseVM 
@using (Html.BeginForm()) 
{ 
//Other form elements as well 
@Html.DropdownListFor(x=>x.SelectedSubject, 
        new SelectList(Subjects,"Value","Text"),"Select one") 
    <input type="submit" /> 
} 
相关问题