首页 > 解决方案 > MVC Core 2.0“发布”操作返回空视图模型

问题描述

我正在使用 ASP .Net core 2.0 MVC 网站。在此,我有一个控制器、一个视图模型和一个视图。

视图模型是类型

 class ViewModelClassName
{
    public int property1;
    public Dictionary<string, Dictionary<string, string>> property2;
}

我通过上一个线程知道,如果属性未显示在可编辑字段中,它们将返回 null。在视图中,我在字段中以隐藏或可见形式显示了所有属性。仍然表单提交返回 null。代码中显示的字典是有效的存储方式吗?如果没有,还有什么替代方案?

标签: c#asp.net-core

解决方案


使用属性而不是字段。它应该像

class ViewModelClassName
{
    public int Property1 { get; set; }
    public Dictionary<string, Dictionary<string, string>> Property2 { get; set; }
}

使用属性背后的原因是因为默认模型绑定器使用属性。

更新: 如果您需要了解字典绑定的工作原理,请参阅以下链接 http://www.hanselman.com/blog/ASPNETWireFormatForModelBindingToArraysListsCollectionsDictionaries.aspx


推荐阅读