0

希望大家能回答我一个问题?

我才刚刚开始使用 ASP.NET MVC3,但在某个时候出现了问题。我一直在从书中学习这些东西,但我对一些事情有点不确定。

一个视图可以只有一个@Model 引用吗?

目前,我在 ViewResult 上有一个带有 HTTP-POST 的 VIEW 设置,它验证视图中的数据,由用户输入,然后“在发布时”,将此信息传递给将其写回数据库的方法( ADO.NET - 访问)。现在我需要更改我的视图,以便我可以将几个文本框替换为 Dropdownlistfor 控件。填充这些控件的数据需要从数据库传入。

我是否正确地说这些数据需要在页面的 HTTP-GET Viewresult 中传递,如果是这样,我可以在同一个 View (*.cshtml) 中引用多个@Model。

我有一个接受用户响应的类,这在视图中被引用。但是我是否需要为下拉列表数据创建一个新类并引用它。这样在后台我将数据填充到 SelectListItem 中,将其传递给视图,然后填充视图中的每个下拉控件?

如果写得不好,很难解释,我很抱歉,我发现从书本上学习很难,我现在很困惑。任何帮助,将不胜感激。只是为了让我了解这一切是如何发生的。我对 C# 语法很满意,但对 MVC3 非常不确定!

4

2 回答 2

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)
于 2012-07-03T07:31:58.527 回答
1

我认为这将帮助您复数视觉 mvc3 介绍。它确实帮助了我

于 2012-07-03T07:36:17.507 回答