c# - MVC 使用 RenderPartial 访问类 List

标签 c# asp.net-mvc razor

我正在尝试访问主类(模型)中的类属性。

尝试通过 @Html.RenderPartial 进行此操作,但似乎无法在局部 View 中访问类中的类 - 我在如何访问类列表属性方面哪里出错了?

主 cshtml

@model Project.Models.BaseClass

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title></title>
</head>
<body>
<div class="ui-block-a">
                        <p>Heading</p>
                        <span>@{Html.RenderPartial("~/View/Path", Model);}</span>
                    </div>
</body
</html>

局部 View - 不起作用

@model Project.Models.BaseClass.ChildClass

型号

public class BaseClass
{
public List<ChildClass> childclasslist {get;set;}
}
public class ChildClass
{
public string name {get;set;}
}

最佳答案

在您的主视图中,您拥有类型为 BaseClass 的模型。所以声明

@{Html.RenderPartial("~/View/Path", Model);}

您正在为部分 View 提供模型 BaseClass

但是你的部分 View 需要一个类型的模型

Project.Models.BaseClass.ChildClass

(甚至不存在,它将是 Project.Models.ChildClass)。


有两种选择:

更改局部 View :

@model Project.Models.BaseClass

并像访问您的列表一样

Model.childclasslist

更改调用以呈现局部 View :

@{Html.RenderPartial("~/View/Path", Model.childclasslist);}

和你的局部 View :

@model List<Project.Models.ChildClass>

关于c# - MVC 使用 RenderPartial 访问类 List,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29677344/

相关文章:

c# - 从资源加载的程序集引发无法加载文件或程序集

c# - MVC Helper TextArea - 占位符不显示

c# - ASP.NET MVC下无法使用C#设置和获取cookie

c# - MVC EditorFor model binding for multiple edit forms on a page

asp.net - 如何在 Razor View 引擎中实现 foreach 委托(delegate)?

c# - 在异步函数上使用 await 时出现异常

c# - 如何将 DataSet 中的所有表绑定(bind)到 DataGrid

asp.net core 2.0 - 值不能为空。参数名称: connectionString

c# - C# do-while 循环在 Web 开发中有什么常见的用法吗?

c# - C#中使用的AForge.Video.FFMPEG