作为一个新手,请原谅我的琐碎问题。 (ASP.Net MVC4)
在阅读了很多帖子/教程后,我仍然不确定如何处理。我想要做的是在我的索引页面上有三个下拉列表。例如,国家/地区,公司,分支机构。我有相同的数据模型,使用EF链接到我的数据库。我已设法列出索引页面上的所有数据。但是我需要在下拉列表中。
问题是如何为此创建控制器?目前控制器看起来像:
public class HomeController : Controller
{
private CorpCostEntities db = new CorpCostEntities();
public ActionResult Index()
{
return View();
}
...
...
}
我是否需要为每个表创建单独的 ActionResult 方法来填充数据?或者我是否为Index()使用方法重载,例如Index(国家/地区),Index(公司comp),Index(分支机构)?
接下来的问题是因为会有不同的ActionResult方法,我是否需要为此创建单独的视图?我使用的是简单的MVC结构。我没有ViewModel或MVC以外的东西。
首先为多个下拉列表创建控制器然后在现有View页面中显示它们的方法究竟是什么?
提前感谢您的帮助。
答案 0 :(得分:0)
不,您不需要为每种类型单独执行操作,我只需在ViewBag中抛出这些值并在视图中读取(Here is how to load it into dropdown element):
public class HomeController:Controller { 私人CorpCostEntities db;
public HomeController(){
db = new CorpCostEntities();
ViewBag.CountryList = db.GetCountryList();
ViewBag.CompanyList = db.GetCompanyList();
ViewBag.BranchList = db.GetBranchList();
}
public ActionResult Index()
{
return View();
}
}
关于“下一个问题是因为会有不同的ActionResult方法,我是否需要为此创建单独的视图?”,我有点不清楚你在问什么,但我会给它一个假设。 ...将您的(GET)ActionResults视为页面(您的操作方法不仅仅是锁定在返回的'页面'中,而是与我一起承担)。假设您有一个显示客户列表的操作“索引”,您将拥有索引操作和索引视图。现在,添加一个Edit屏幕,它将是另一个Action,Edit和View,Edit.cshtml。
答案 1 :(得分:0)
您可能还想考虑创建一个ViewModel(CorpCastViewModel),其中包含渲染视图所需的所有对象。
然后,您将获得实际CorpCostModel的属性,以及查看集合的属性以及视图中所需的其他内容。
您可以按如下方式创建编辑器: @ Html.EditorFor(model => model.CorpCostModel.SomeField) 和列表框 @ Html.DropDownListFor(model => model.CorpCostModel.CorpCountryId,new SelectList(Model.CountryList,“CountryId”,“CountryName”),“”)