c# - 将模型属性传递给局部 View

标签 c# asp.net-mvc asp.net-mvc-4

我在将正确的数据传递给局部 View 时遇到问题,我不确定失败的原因。

假设我有模型

public class SubModel {
  public string Wobble {get; set;}
}

public class MyModel {
  public SubModel Wibble {get; set;}
}

和观点

MyView.cshtml

@model MyModel

@Html.Partial("SomePartial", Model.Wibble)

SomePartial.cshtml

@model SubModel

<h1>Victory!</h1>

这失败了,传入字典的模型项是“MyModel”类型,但是这个字典需要一个“MySubModel”类型的模型项

当我将 MyView.cshtml 更改为

@model MyModel

@Html.Partial("SomePartial", Model.Wibble, new ViewDataDictionary<MySubModel>(Model.Wibble))

它按预期工作。

为什么我需要显式传递一个 ViewDataDictionary?为什么我不能只传递模型?

注意:我正在使用一个库来做一些让我去 hrm 的事情?很多时候。如果上述行为不是预期的,则可能是此库错误。

最佳答案

当您传递给分部 View 的模型为 null 时,就会发生这种情况。不要将 null 传递给分部 View ,否则它会对其类型感到困惑。

关于c# - 将模型属性传递给局部 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22986743/

相关文章:

c# - 通过C#调用COM组件的包装类是否需要实现Dispose模式?

asp.net-mvc - 创建自定义 ViewResult,根据 ASP.NET MVC 3 中的平台显示不同的 View

asp.net-mvc - mvc4 和 EF 中的 Html.EditorFor 和多行文本框

javascript - 如何在razor javascript函数中写入 "@"?

c# - 上一个按钮显示验证

c# - type.Assembly 给出了错误的程序集?

c# - 使用自定义逻辑在 MVC 中对大量数据进行分页

asp.net-mvc - MVC 父子类型模型表单提交不会将子集合发送到 Controller

c# - 如何使用 C# 中的 ExecuteScalar 从 SQL 命令获取多个变量并将它们设置为局部变量

c# - 如何加快在 SQL 数据库表中插入文本文件的速度?