我希望你们能回答我一个问题?
我刚开始使用ASP.NET MVC3已经在某个时刻出现了问题。我一直在从书本中学到这些东西,而且我对一些事情有些不确定。
VIEW可以只有一个@Model引用吗?
目前我在ViewResult上使用HTTP-POST进行VIEW设置,验证用户输入的View中的数据,然后“on post”,将此信息传递给将其写回的方法数据库(ADO.NET - Access)。现在我需要更改我的VIEW,以便我可以替换Dropdownlistfor控件的几个文本框。填充这些控件的数据需要从数据库传入。
我是否正确地说这个数据需要在页面的HTTP-GET Viewresult中传递,如果是这样,我可以在同一个View(* .cshtml)中引用多个@Model。
我有一个接受用户响应的类,这在View中引用。但是我是否需要为下拉列表数据创建一个新类并引用它。那么在后台我将数据填充到SelectListItem中,将其传递给View,然后在视图中填充每个下拉控件?
我很抱歉如果写得不好,很难解释,我发现从书本上学习很困难而且我现在很困难。任何帮助,将不胜感激。只是为了让我了解这一切是如何包裹的。我对C#语法很满意,但对MVC3非常不确定!
答案 0 :(得分:2)
有两种方法可以解决这个问题。
在这种情况下,您有一个包含数据模型的类以及视图所需的其他内容,如下所示:
public class ViewModel
{
public MyDomainModel Model { get; set; }
public IEnumerable<SelectListItem> SelectListItems { get; set; }
}
在这种情况下,您可以将所有内容添加到 ViewBag 字典中。所以在控制器中,你会有这样的东西:
ViewBag.SelectListItems = new SelectListItem[] { ... };
然后你可以在视图中引用
@Html.DropDownList("myselectlist", ViewBag.SelectListItems)
答案 1 :(得分:1)
我认为这会对你有所帮助pluralsight mvc3 intro。它确实帮助了我