如何解决使用提交按钮时,MVC字符串[]在我的模型中不会更新
“什么是NullReferenceException,如何解决?”没有回答我的问题。
我在更新项目上的某些标签时遇到问题。我在这里的模型中定义了它们:
public string LabelsString { get; set; }
//[NotMapped]
public string[] Labels
{
get
{
return LabelsString.Split('`');
}
set
{
LabelsString = string.Join("`",value);
}
}
这就是我在视图中使用它们的方式。
<div class="row-4">
<div class="form-group">
@Html.Label("Labels",htmlAttributes: new { @class = "control-label col-sm-2" })
<div class="col-sm-10">
@Html.EditorFor(x => Model.Labels,new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(x => Model.Labels,"",new { @class = "text-danger" })
</div>
</div>
</div>
错误出现在这里:
return LabelsString.Split('`');
它说没有对象引用。
每次我在项目上单击提交按钮时,都会发生这种情况。如果我注释掉上面的HTML,我的代码将正常运行,并且所有其他输入都将正确保存和更新。特别是我遇到麻烦的string []类,甚至在这里也能用:
@for (int j = 0; j < Model.Data.Count; j++)
{
@Html.HiddenFor(m => Model.Data[j].Id)
<div class="row-12">
<div class="col-sm-6">
<div class="form-group">
@Html.Label("Row " + j,new { @class = "control-label col-sm-2" })
<div class="col-sm-10">
@Html.EditorFor(m => Model.Data[j].Label,new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(m => Model.Data[j].Label,new { @class = "text-danger" })
</div>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<div class="col-sm-10">
@Html.EditorFor(m => Model.Data[j].Numbers,new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(m => Model.Data[j].Numbers,new { @class = "text-danger" })
</div>
</div>
</div>
</div>
}
过去,我已经像这样安排了HTML,但仍然无法正常工作。最重要的是,帖子:
SubTitle:
LegendSubtext:
Labels[0]: Modified
Labels[1]: Troops to Teachers
Labels[2]: Modified2
[0]: #0070C0
[1]: #ED7D31
[2]: #656565
Stacked: false
Horizontal: false
Data[0].Id: 416
Data[0].Label: Modified
Data[0].Numbers[0]: 176000
Data[1].Id: 417
Data[1].Label: Troops to Teachers
Data[1].Numbers[0]: 172000
Data[2].Id: 418
Data[2].Label: Modified2
Data[2].Numbers[0]: 130000
注释行是标签[i]行。这些不知何故不更新Model字符串[]。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。