我正在通过将旧的 PHP 程序重构为 ASP 格式来学习 C#/MVC 4。该程序的目的是为客户约会创建日历条目,包括一些基本的客户信息。我最近的挑战是将静态数据加载到页面上的多个 @Html.DropDownLists 中。在破解了这个(如何在 MVC Html.DropDownList() 中添加静态项目列表)和那个(如何让这个 ASP.NET MVC SelectList 工作?)之后,我能够做到这一点,但我觉得我我重新发明轮子...
模型部分:(CommonDataModel.cs)
public class apptCounties{
public IEnumerable<SelectItemList> Counties {get; set;}
public apptCounties()
{
Counties = new[]
{
new SelectListItem{Text="Cook",Value="Cook"},
new SelectListItem{Text="Dupage",Value="Dupage"},
new SelectListItem{Text="Lake",Value="Lake"}
};
}
}
VIEWMODEL:(ScheduleDataViewModel.cs)
public class ScheduleDataViewModel {
public apptClient ClientData {get; set;}
/* ^--This is from another model specific to this app - I'm attempting to use
"CommonDataModel.cs" to hold multiple lists of static data (Counties, Races,
Genders, etc) & then append app-specific data through specialized models.
I plan on expanding functionality later. */
public apptCounties Counties {get; set;}
public ScheduleDataViewModel()
{
ClientData = new apptClient();
Counties = new apptCounties();
}
}
控制器:(ScheduleController.cs)
public ActionResult Schedule()
{
var model = new ScheduleDataViewModel();
return View(model);
}
部分视图:(Index.cshtml - 强类型为 ScheduleDataViewModel)
@Html.DropDownList("Counties", Model.Counties)
抱歉,那里有任何肮脏的语法 - 我的代码不在我面前!我可以验证至少上面的一般想法在构建和测试时是有效的。
我担心我把应该是一个更简单的程序过于复杂化了。我是否真的在正确的轨道上使用了所有的构造方法,或者有人可以建议一个更优雅的解决方案来提供静态数据列表而不需要数据库的好处?