沃伦,
尝试使用可空整型,所以它将使共同通过如果没有在模型发送数据,请参见下面的代码执行
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")
}
我与控制器型号为:
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; }
}
不幸的是,这也不能解决我在寻求帮助之前尝试过的问题。我找到了罪魁祸首,并将更新细节的线程。 – Warren
@Warren你能发表你的观点代码吗? – cpoDesign
我们与样本具有相同的视图代码。解决这个问题我不得不将@ Html.EditorFor(model => model.Year)更改为@ Html.txtBoxFor(model => model.Year)。 – Warren