我是第一次使用 MVC4。我了解了它的一些基本逻辑。
我想显示一个下拉列表,其中包含一些动态内容(数据来自数据库)。
如何使用模型、视图和控制器来实现这一点?请帮我提供示例代码..
我是第一次使用 MVC4。我了解了它的一些基本逻辑。
我想显示一个下拉列表,其中包含一些动态内容(数据来自数据库)。
如何使用模型、视图和控制器来实现这一点?请帮我提供示例代码..
您可以参考这篇文章了解详细信息。由于您刚刚了解了 MVC 的基本概念,因此该帖子还有一个使用示例 NorthWind 数据库在 MVC 中添加下拉列表的基本示例。
这对你来说应该是一个好的开始。
模型\FooModel.cs
public class FooModel
{
public string Key { get; set; }
public string Text { get; set; }
}
模型\FooModelList.cs
public class FooModelList
{
public int SelectedFooId { get; set; }
public IEnumerable<FooModel> Foos { get; set; }
}
控制器\HomeController.cs
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new FooListModel
{
SelectedFooId = 0,
Foos = GetFooModels()
};
return View(model);
}
[HttpPost]
public ActionResult Index(FooListModel model)
{
if (ModelState.IsValid)
{
// do something with model
return RedirectToAction("View", "Foo", new { Id = model.Key });
}
// somethings wrong..
model.Foos = GetFooModels();
return View(model);
}
private IEnumerable<FooModel> GetFooModels()
{
var dbContext = new FooDbContext();
var fooModels = dbContext.Foos.Select(x =>
new FooModel
{
Key = x.Key,
Value = x.Value
};
return fooModels.ToList();
}
}
视图\主页\Index.cshtml
@model MvcApp.Models.FooListModel
@{
var fooList = new SelectList(Model.Foos, "Key", "Value");
}
@using (Html.BeginForm("DealSummaryComparison", "Reporting", FormMethod.Post)) {
<div>
Foos: @Html.DropDownListFor(x => x.SelectedFooId, fooList)
</div>
<div>
<input type="submit" value="Submit" />
</div>
}