C# 在MVC4教程之后,“在哪里?”;模型";来自何处,我如何更改它';s值多少?
VisualStudio2010告诉我,与System.Mvc.ViewDataDictionary对象关联的C# 在MVC4教程之后,“在哪里?”;模型";来自何处,我如何更改它';s值多少?,c#,asp.net-mvc,C#,Asp.net Mvc,VisualStudio2010告诉我,与System.Mvc.ViewDataDictionary对象关联的模型属性非常有用,但它似乎没有以易于理解的格式向我显示我想要的内容 请注意,以下.cshtml文件位于BorkedModel的视图文件夹中,但我要访问的模型位于ExampleModel的模型文件夹中。如果文件本身位于ExampleModel的视图文件夹中,但不在其他模型的视图文件夹中,则此代码可以正常工作 ProjectTopDirectory/Views/BorkedModel/ind
模型属性非常有用,但它似乎没有以易于理解的格式向我显示我想要的内容
请注意,以下.cshtml
文件位于BorkedModel
的视图文件夹中,但我要访问的模型位于ExampleModel
的模型文件夹中。如果文件本身位于ExampleModel
的视图文件夹中,但不在其他模型的视图文件夹中,则此代码可以正常工作
ProjectTopDirectory/Views/BorkedModel/index.cshtml
@model IEnumerable<ExampleMVC4.Models.ExampleModel>
@foreach (var item in Model)
{
<HTML here/>
}
@model IEnumerable
@foreach(模型中的var项目)
{
}
对于我正在做的事情,是否有一个解决方案,或者我应该让模型保持在它们自己的视图中,仅此而已?有没有办法从另一个模型的视图访问一个模型?要在视图中使用强类型模型,您需要将模型从控制器传递到视图:
public ActionResult Index()
{
YourDBContext db = new YourDBContext();
IEnumerable<ExampleModel> model = db.GetDataFromDatabase();
return View(model); // Pass the model to the view
}
public ActionResult Index()
{
YourDBContext db=newyourdbcontext();
IEnumerable model=db.GetDataFromDatabase();
返回视图(模型);//将模型传递给视图
}
然后在视图中指定模型,该模型应允许您访问数据:
@model IEnumerable<NextFlicksMVC4.Models.ExampleModel>
@foreach (var item in Model)
{
// Your HTML
}
@model IEnumerable
@foreach(模型中的var项目)
{
//你的HTML
}
更新:控制器操作方法应该是从数据库检索数据,然后将其传递给视图。视图的唯一任务是向用户显示数据。模型没有视图。控制器操作具有视图。只要将模型从控制器动作传递到视图,就应该能够在视图中使用任何模型。如果需要多个模型,请创建一个包含这些模型的专用视图模型对象,并将其传递给视图。您可能希望阅读此内容。如果您感兴趣,还有一个免费的。@Mightymuke谢谢,这实际上是我正在编写的教程,直接从Ctrl-F中获取“当您创建电影控制器时,Visual Studio Express自动包含以下内容”,下面的代码就是我要说的。@KevinM1在BorkedModelController中,而不是调用returnview()
你是说我返回视图(ExampleModel)
?我试图使用返回视图(Project.Models.ExampleModel
,但得到的类型在此上下文中无效
错误。而仅仅尝试返回视图(ExampleModel)
无法理解没有第一位的ExampleModel
是什么。@Tank-你不返回类型,你返回它的一个实例。例如,返回视图(型号)
,或者在本例中为返回视图(电影)
只有一个问题,否则这看起来就像我需要的:db是DBContext
对象吗?我似乎还没弄明白这个问题。@TankorSmash是的,db是你的DBContext对象。啊,好了,你从来没有在这个控制器中创建过这个类的实例。谢谢你。对于其他人,就像MightMuke说的,它是return视图(db.Movies.ToList())
,对于我的个人问题,没有GetDataFromDatabase
。再次感谢大家。