MVC未验证空字符串
本文关键字:字符串 验证 MVC | 更新日期: 2023-09-27 18:21:15
我有一个剃刀文件,我在其中定义了带有字符串文本框的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)不可以为null,但剃刀验证允许字符串为空,当我向模型中添加空字符串时,它会出错。有什么建议可以简单地验证这个字符串,使其不再为空?
您可能需要设置DataAnnotation属性
[必需(AllowEmptyStrings=false)]
在您要应用验证的属性的顶部
请在此处查看此问题
ASP.NET MVC 3中AllowEmptyString=true的RequiredAttribute不引人注目的验证
类似的问题,或多或少在这里。
如何将具有空值的文本框转换为空字符串
希望您能够解决您的问题
您的视图模型是什么样子的?
您可以在视图模型中将DataAnnotation
属性添加到Name
属性中
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
}
}
这对我来说很有效:
使用以下行不接受空字符串
[Required (AllowEmptyStrings = false)]
这个不允许空白
[RegularExpression (@".*'S+.*", ErrorMessage = "No white space allowed")]