C# 需要MVC3剃须刀帮助
我希望你们能回答我一个问题 我刚刚开始使用ASP.NET MVC3,但在某一点上还没有成功。我从书本上学到了这些东西,我对一些事情有点不确定 一个视图只能有一个@Model引用吗 目前,我有一个在ViewResult上使用HTTP-POST的视图设置,它验证视图中由用户输入的数据,然后“在POST上”将此信息传递给一个方法,该方法将其写回数据库(ADO.NET-Access)。现在我需要更改我的视图,这样我就可以为DropDownList控件替换几个文本框。填充这些控件的数据需要从数据库传入 我说的这些数据需要在页面的HTTP-GET Viewresult中传递是否正确?如果是,我可以在同一个视图(*.cshtml)中引用多个@Model吗 我有一个接受用户响应的类,它在视图中被引用。但是我需要为dropdownlist数据创建一个新类并引用它。因此,在后台,我将数据填充到SelectListItem中,将其传递给视图,然后填充视图中的每个下拉控件C# 需要MVC3剃须刀帮助,c#,asp.net-mvc-3,razor,C#,Asp.net Mvc 3,Razor,我希望你们能回答我一个问题 我刚刚开始使用ASP.NET MVC3,但在某一点上还没有成功。我从书本上学到了这些东西,我对一些事情有点不确定 一个视图只能有一个@Model引用吗 目前,我有一个在ViewResult上使用HTTP-POST的视图设置,它验证视图中由用户输入的数据,然后“在POST上”将此信息传递给一个方法,该方法将其写回数据库(ADO.NET-Access)。现在我需要更改我的视图,这样我就可以为DropDownList控件替换几个文本框。填充这些控件的数据需要从数据库传入 我
很抱歉,如果这篇文章写得不好,很难解释,我觉得从书本上学习很难,我现在很困。任何帮助都将不胜感激。只是为了让我了解这一切是如何发生的。我对C#语法很熟悉,但对MVC3非常不确定 有两种方法可以解决这个问题
- 使用视图模型
public class ViewModel
{
public MyDomainModel Model { get; set; }
public IEnumerable<SelectListItem> SelectListItems { get; set; }
}
ViewBag.SelectListItems = new SelectListItem[] { ... };
然后可以在视图本身中引用
@Html.DropDownList("myselectlist", ViewBag.SelectListItems)
有两种方法可以处理这个问题
- 使用视图模型
public class ViewModel
{
public MyDomainModel Model { get; set; }
public IEnumerable<SelectListItem> SelectListItems { get; set; }
}
ViewBag.SelectListItems = new SelectListItem[] { ... };
然后可以在视图本身中引用
@Html.DropDownList("myselectlist", ViewBag.SelectListItems)
我想这会对你有帮助。它确实帮助了我我想这会对你有所帮助。它确实帮助了我因此,我可以使用视图包存储多种类型的数据。如果我需要两个dropdownlists,一个过滤器从另一个,我可以分配两组数据到视图包,在不同的名称下。我没有遇到视图模型,我一定会仔细阅读它们!老实说,在MVC中使用ViewBag不是很好的实践。ViewModel是一个非常非常好的解决方案。@Derek是的,没错。ViewBag实际上是一个动态类型对象;所以你可以把它当作一本字典,把不同类型的对象放在里面。太棒了!谢谢你的帮助,我已经阅读了ViewBag,但从未考虑过它。那么,我认为每个视图只能引用一个模型是正确的吗?因此,我可以使用视图包存储多种类型的数据。如果我需要两个dropdownlists,一个过滤器从另一个,我可以分配两组数据到视图包,在不同的名称下。我没有遇到视图模型,我一定会仔细阅读它们!老实说,在MVC中使用ViewBag不是很好的实践。ViewModel是一个非常非常好的解决方案。@Derek是的,没错。ViewBag实际上是一个动态类型对象;所以你可以把它当作一本字典,把不同类型的对象放在里面。太棒了!谢谢你的帮助,我已经阅读了ViewBag,但从未考虑过它。因此,我认为每个视图只能引用一个模型,对吗?