Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在MVC4教程之后,“在哪里?”;模型";来自何处,我如何更改它';s值多少?_C#_Asp.net Mvc - Fatal编程技术网

C# 在MVC4教程之后,“在哪里?”;模型";来自何处,我如何更改它';s值多少?

C# 在MVC4教程之后,“在哪里?”;模型";来自何处,我如何更改它';s值多少?,c#,asp.net-mvc,C#,Asp.net Mvc,VisualStudio2010告诉我,与System.Mvc.ViewDataDictionary对象关联的模型属性非常有用,但它似乎没有以易于理解的格式向我显示我想要的内容 请注意,以下.cshtml文件位于BorkedModel的视图文件夹中,但我要访问的模型位于ExampleModel的模型文件夹中。如果文件本身位于ExampleModel的视图文件夹中,但不在其他模型的视图文件夹中,则此代码可以正常工作 ProjectTopDirectory/Views/BorkedModel/ind

VisualStudio2010告诉我,与System.Mvc.ViewDataDictionary对象关联的
模型属性非常有用,但它似乎没有以易于理解的格式向我显示我想要的内容

请注意,以下
.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
。再次感谢大家。