Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.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# 以不同方式渲染的模型列表_C#_Asp.net Mvc_Asp.net Mvc Partialview - Fatal编程技术网

C# 以不同方式渲染的模型列表

C# 以不同方式渲染的模型列表,c#,asp.net-mvc,asp.net-mvc-partialview,C#,Asp.net Mvc,Asp.net Mvc Partialview,假设我有一个从抽象类ModelA派生的对象列表。我想传递到对象的视图列表(让我们看看ModelB和ModelC,它们是ModelA的子类) 我想让这些对象(ModelB、ModelC)知道如何呈现自己(ModelC UI与ModelB UI不同)。我想我应该使用局部视图,但我不知道如何使用。 以下方法如何: ModelsA存储PartialView的路径(作为抽象属性),然后ModelB(或C)覆盖它,然后我呈现它: @foreach(var model in modelList) {

假设我有一个从抽象类ModelA派生的对象列表。我想传递到对象的视图列表(让我们看看ModelBModelC,它们是ModelA的子类)

我想让这些对象(ModelB、ModelC)知道如何呈现自己(ModelC UI与ModelB UI不同)。我想我应该使用局部视图,但我不知道如何使用。 以下方法如何: ModelsA存储PartialView的路径(作为抽象属性),然后ModelB(或C)覆盖它,然后我呈现它:

@foreach(var model in modelList)
{
    Html.RenderPartial(model.PartialPath, model)
}

抱歉,如果语法不正确,我需要showonly idea。

您应该阅读有关EditorTemplates和ViewTemplates的内容,例如。

通过让模型知道如何渲染自己,您违反了MVC模式。模型不应该了解它在屏幕上的渲染方式;这是视图的域。好的。我知道我应该为ModelB和ModelC创建单独的局部视图。所以,当我想要呈现ModelA列表时,如何将适当的局部视图与模型实例关联起来呢?
@foreach(var model in modelList)
{
    Html.RenderPartial(model.PartialPath, model)
}