需要MVC3 Razor帮助

时间:2012-07-03 07:26:40

标签: c# asp.net-mvc-3 razor

我希望你们能回答我一个问题?

我刚开始使用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非常不确定!

2 个答案:

答案 0 :(得分:2)

有两种方法可以解决这个问题。

  • 使用视图模型。

在这种情况下,您有一个包含数据模型的类以及视图所需的其他内容,如下所示:

public class ViewModel
{
    public MyDomainModel Model { get; set; }
    public IEnumerable<SelectListItem> SelectListItems { get; set; }
}
  • 使用 ViewBag

在这种情况下,您可以将所有内容添加到 ViewBag 字典中。所以在控制器中,你会有这样的东西:

ViewBag.SelectListItems = new SelectListItem[] { ... };

然后你可以在视图中引用

@Html.DropDownList("myselectlist", ViewBag.SelectListItems)

答案 1 :(得分:1)

我认为这会对你有所帮助pluralsight mvc3 intro。它确实帮助了我