asp.net-mvc - 如何将模型传递给局部 View

标签 asp.net-mvc partial-views asp.net-mvc-viewmodel

我有两个 View 模型:

public class ParentViewModel
    {
        public Id { get; set; }
        .....
        public ChildViewModel Child{ get; set; }
    }

public class ChildViewModel
    {
        public ChildId { get; set; }
        .....
    }

Controller :
    public ActionResult Index()
        {
            .... <some code>
            return View("NewIndex", ParentViewModel);
        }

    [HttpPost]
    public ActionResult PartialAction(ChildViewModel childView)
    {
        return RedirectToAction("Index");
    }

和意见:
指数
@model ParentViewModel
....
@Html.Partial("_Partial", Model.Child)

和_部分
@model ChildViewModel
... do some stuff with child model

当我尝试打开索引页面时出现错误:

传递到字典中的模型项的类型为“ParentViewModel”,但该字典需要一个“ChildViewModel”类型的模型项。

为什么它试图传递 ParentViewModel 而不是 ChildViewModel。我做错了什么?

最佳答案

我和 OP 有同样的问题。从其中一条评论中,我意识到第二个参数不应该为空,即来自

@model ParentViewModel
@Html.Partial("_Partial", Model.Child)

如果 Model.Child 为空,则 型号 被传递而不是 Model.Child .如果出现第二个参数为空的情况,那么您必须首先检查代码,并可能将初始化的 Child 作为第二个参数传递。像这样的东西
@Html.Partial("_Partial", new Child())

关于asp.net-mvc - 如何将模型传递给局部 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21172595/

相关文章:

asp.net-mvc - 在 EF 6 中设置命令超时

c# - 具有数据访问层和 App.Config 的 MVC4 项目中的新 Entity Framework 5 是否存在错误

ruby-on-rails - Haml 嵌套与 Rails 中渲染的部分

c# - MVC 从远距离相关的多个域模型创建 View 模型

c# - EmailAttribute 未在 ASP.NET Core 的 ViewModel 中正确验证

asp.net-mvc - 您如何设计需要为每个新客户定制的Web应用程序?

c# - 我应该为 EF6 实现存储库和工作单元吗?

c# - 执行处理程序的子请求时出错 - 从 Controller 调用的部分 View

jquery - MVC 4 - 更新部分 View

asp.net-mvc - ViewModel 最佳实践