gpt4 book ai didi

c# - 数据注释 MVC 4 位数字

转载 作者:行者123 更新时间:2023-12-05 01:47:39 24 4
gpt4 key购买 nike

我正在尝试实现一个接受 4 位数字或将其留空的字段。

[RegularExpression(@"^(\d{4})$", ErrorMessage = "Enter a valid 4 digit Year")]
[Display(Name = "Year")]
public int Year { get; set; }

当输入超过 4 个数字时,会显示错误消息。问题是当我输入任何不是数字或数字和非数字的混合值时,验证错误消息不会显示。

我肯定错过了什么。帮帮我 :)

最佳答案

沃伦,

尝试使用nullable int,这样如果模型中什么都没有,它会允许共同发送数据,具体实现见下面的代码

public class TestModel
{
[RegularExpression(@"^(\d{4})$", ErrorMessage = "Enter a valid 4 digit Year")]
[Display(Name = "Year")]
public int? Year { get; set; }
}

更新:我对这段代码的看法如下

@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>Index</h2>

@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)

<fieldset>
<legend>TestModel</legend>

<div class="editor-label">
@Html.LabelFor(model => model.Year)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Year)
@Html.ValidationMessageFor(model => model.Year)
</div>

<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}

<div>
@Html.ActionLink("Back to List", "Index")
</div>

@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}

我带 Controller 的模型是:

 public class HomeController : Controller
{
//
// GET: /Home/

public ActionResult Index()
{
var model = new TestModel();

return View(model);
}
}


public class TestModel
{
[RegularExpression(@"^(\d{4})$", ErrorMessage = "Enter a valid 4 digit Year")]
[Display(Name = "Year")]
public int? Year { get; set; }
}

关于c# - 数据注释 MVC 4 位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22756834/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com