【发布时间】:2020-03-27 09:13:04
【问题描述】:
我有一个字符串属性以 json 格式序列化的模型,但我无法保存:
public class Foo
{
public string NameProp;
public string JsonCover;
}
public class Cover
{
public bool Loop;
public bool FreeMode;
}
JsonCover 字符串是这样的:
{"Loop":true,"FreeMode":true}
查看cshtml:
@model MyLocalPath.Models.Foo
@using Newtonsoft.Json
@{Cover cover = JsonConvert.DeserializeObject<Cover>(Model.JsonCover); }
<div class="row">
<div class="col-md-4">
<form method="post">
<div class="form-group">
<label asp-for="@Model.nameProp" class="control-label"></label>
<input asp-for="@Model.nameProp" class="form-control" />
<span asp-validation-for="@Model.nameProp"></span>
</div>
<div class="form-group">
<label asp-for="@cover.Loop" class="control-label"></label>
<input asp-for="@cover.Loop" class="form-control" />
<span asp-validation-for="@cover.Loop"></span>
</div>
<div class="form-group">
<label asp-for="@cover.FreeMode" class="control-label"></label>
<input asp-for="@cover.FreeMode" class="form-control" />
<span asp-validation-for="@cover.FreeMode"></span>
</div>
<div class="form-group">
<input type="submit" value="Save" name="save" />
</div>
</form>
</div>
</div>
我的问题是在 HttpPost IActionResult 中:Foo.JsonCover 为 NULL。所以我无法保存。
【问题讨论】:
-
你能在其构造函数中定义一个默认值 {} 吗?
-
我的阅读没有问题,只有保存。模型的初始值可以是:NameProp="Peter", JsonCover = "{"Loop":true,"FreeMode":true}"
标签: c# .net-core model asp.net-core-mvc razor-pages