“TextAreaFor”在内容为空时将NULL传递给模型或空字符串

时间:2016-05-10 15:58:38

标签: c# asp.net-mvc razor

我有这样的事情:

<div class="form-group">
    @Html.Label("Disclaimer Message", new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @Html.TextAreaFor(t => t.DisclaimerMessageText, new { @class = "form-control", rows = 3 })
    </div>
</div>

在我的模型中,我已经定义了这个:

public string DisclaimerMessageText { get; set; }

如果我在文本区域输入内容并保存,我的模型将具有我键入的值并成功保存。但是当我清空文本框并想要保存时,值为NULL。我以为它会传递空字符串。事情的正常行为是什么?

1 个答案:

答案 0 :(得分:4)

是。 MVC在帖子上将空字符串规范化为null。这是因为实际上无法发布null,并且它更适合未设置为null而不是空字符串的字段。空字符串表示该值意图为空字符串,通常不为真。

如果您希望将其实际保存为空字符串,而不是数据库中的NULL,则可以手动将该属性设置为空字符串。