MVC 不验证空字符串

10

我有一个 Razor 文件,在其中定义了一个带有字符串文本框的 HTML 表单:

    @using (Html.BeginForm()) {
        @Html.ValidationSummary(true)
        <fieldset>
        <legend>Product</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.Name)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Name)
            @Html.ValidationMessageFor(model => model.Name)
        </div>
        <p>
            <input type="submit" value="Create" />
        </p>
        </fieldset>
     }
问题是我想让这个字段(model.name)不可为空,但Razor验证允许字符串为空。当我将空字符串添加到模型时,它会出错。有什么建议可以简单地验证这个字符串不再为空吗?
答案:问题是,我希望这个字段(model.name)不可为空,但是Razor验证允许一个空字符串。当我向模型添加空字符串时,它会报错。有没有简单的方法来验证这个字符串不为空呢?
3个回答

22

5

你的视图模型是什么样子?

在你的视图模型中,你可以为 Name 属性添加一个 DataAnnotation 属性:

public class MyViewModel
{
    [Required(ErrorMessage="This field can not be empty.")]
    public string Name { get; set; }
}

然后,在您的控制器中,您可以检查所发布的模型是否有效。

public ActionResult MyAction(ViewModel model)
{
    if (ModelState.IsValid)
    {
        //ok
    }
    else
    {
        //not ok
    }
}

0
这是对我有用的方法:
使用以下代码行以不接受空字符串。
[Required (AllowEmptyStrings = false)]

还有这个不允许空格

[RegularExpression (@".*\S+.*", ErrorMessage = "No white space allowed")]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接