在创建 SelectList 时,是否有一种简单的方法可以删除魔术字符串的使用,例如以下示例:
@Html.DropDownListFor( model => model.FooValue, new SelectList( Model.FooCollection, "FooId", "FooText", Model.FooValue) )
魔弦是"FooId"
和"FooText"
该示例的其余部分定义如下:
//Foo Class
public class Foo {
public int FooId { get; set; }
public string FooText { get; set; }
}
// Repository
public class MsSqlFooRepository : IFooRepository {
public IEnumerable<Foo> GetFooCollection( ) {
// Some database query
}
}
//View model
public class FooListViewModel {
public string FooValue { get; set; }
public IEnumerable<Foo> FooCollection { get; set; }
}
//Controller
public class FooListController : Controller {
private readonly IFooRepository _fooRepository;
public FooListController() {
_fooRepository = new FooRepository();
}
public ActionResult FooList() {
FooListViewModel fooListViewModel = new FooListViewModel();
FooListViewModel.FooCollection = _fooRepository.GetFooCollection;
return View( FooListViewModel);
}
}