0

作为一个新手,请原谅我的小问题。 (ASP.Net MVC4)在ASP.Net的一个页面中的多个下拉列表中填充多个表格数据MVC4

阅读大量的帖子/教程后,我仍然不确定如何处理。我想要做的是在我的索引页面上有三个Dropdownlists。例如,国家,公司,分公司。我有他们使用EF链接到我的数据库相同的数据模型。我已经设法列出索引页面上的所有数据。不过,我需要他们在下拉列表中。

问题是我该如何创建控制器?目前控制器的样子:

public class HomeController : Controller 
{ 
    private CorpCostEntities db = new CorpCostEntities(); 

    public ActionResult Index() 
    { 
     return View(); 
    } 

    ... 
    ... 

} 

我需要创建单独的的ActionResult方法对每个表填充数据?或者我是否使用索引()的方法超载,例如索引(国家/地区),索引(公司比较),索引(分支)?

下一个问题是因为会有difefernt ActionResult方法,我需要为此创建单独的视图?我使用简单的MVC结构。我没有ViewModel或MVC以外的东西。

什么方法首先为多个下拉列表创建控制器,然后在现有View页面中显示它们?

感谢您的帮助。

回答

0

不,你不应该需要为每种类型的单独行动,我只想在ViewBag折腾这些价值观并阅读视图(Here is how to load it into dropdown element):

公共类HomeController的:控制 { 私人CorpCostEntities D b;

public HomeController(){ 
db = new CorpCostEntities(); 
ViewBag.CountryList = db.GetCountryList(); 
ViewBag.CompanyList = db.GetCompanyList(); 
ViewBag.BranchList = db.GetBranchList(); 
} 
public ActionResult Index() 
{ 
    return View(); 
} 

}

关于“下一个问题是,因为会有difefernt ActionResult的方法,我需要为创建单独的意见?”,我为你是问什么样的不清楚,但我会给它一个假设....把你的(GET)ActionResults看成页面(你的动作方法不只是锁定在返回'页面'中,而是与我一起)。假设您有一个显示客户列表的操作“索引”,您将拥有索引操作和索引视图。现在,添加一个Edit屏幕,这将是另一个Action,Edit和View,Edit.cshtml。

+0

谢谢。非常感谢你的帮助@TNCodeMonkey。我的意思是每个View的每个ActionResult方法。像Index(),Index.cshtml一样。如果我的索引页上有所有内容(例如生成报告的过滤器)然后我创建一个View页面并将所有内容放入Index()方法中? – shaz

+0

@shaz完全没有问题,很高兴我们得到了另一个ASP.NET MVC的:)。如果你所需要的仅仅是一页,那对你来说工作得很好;如果您的用户将访问索引页面并仅在其中进行交互。我通常在我的控制器中混合使用View方法和Operational/Functional方法,因为我沉浸在jQuery,JS和AJAX中,所以适用于我。最后,它真正归结为您的应用程序所需的内容,您知道的内容以及您感到满意的内容。 – TNCodeMonkey

+0

确实。作为ASP.Net MVC中的新手,遍布各处的文档杂乱无章,恐怕无济于事。我只需要索引页面和一个网格视图来将搜索结果填入它。 – shaz

0

您可能还想考虑创建一个ViewModel(CorpCastViewModel),其中包含呈现视图所需的所有对象。

然后,您将拥有一个用于实际CorpCostModel的属性,还可以查找您的查看中需要的查找集合和其他内容。

比你可以创建如下编辑: @ Html.EditorFor(型号=> model.CorpCostModel.SomeField) 和一个列表框为 @ Html.DropDownListFor(型号=> model.CorpCostModel.CorpCountryId,新的SelectList (Model.CountryList,“CountryId”,“CountryName”),“”)

相关问题