3

我正在使用 MVC4。

验证失败,但未显示验证错误消息。

这是我的模型。

public class Configuration
{
    public int Id { get; set; }

    [Required(AllowEmptyStrings = false, ErrorMessage = "Site name is required.")]
    [MinLength(6, ErrorMessage = "Name should be at least 6 characters.")]
    public string SiteName { get; set; }
}

控制器。

[HttpPost]
    public ActionResult Create(Configuration configItem)
    {
        if (ModelState.IsValid)
        {
            // do something.
        }
        return View("Index", configItem);
    }

视图是

@model Models.SitesConfig.Configuration
@{
ViewBag.Title = "Sites Configurations";
}
<div>
    @Html.ActionLink("Sites List", "List", "SiteConfig")
</div>
@using (Html.BeginForm("Create", "SiteConfig", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <fieldset>
        <legend>New Satellitesite</legend>
        <div>
            @Html.LabelFor(m => m.SiteName, "Name")
            @Html.TextBoxFor(m => m.SiteName)
            @Html.ValidationMessageFor(m=>m.SiteName)
        </div>
        <br />

        <input type="submit" value="Save" />

    </fieldset>
}

如果有更好的验证方法,也请建议我。

4

5 回答 5

4

我不知道是什么问题。清理并构建应用程序后,我可以看到错误消息。

谢谢,纳雷什

于 2012-09-06T11:53:17.693 回答
1

@Html.ValidationSummary("Please correct the errors")视图中应该有

于 2012-09-06T11:04:37.527 回答
0
@using (Html.BeginForm("Create", "SiteConfig", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
  @Html.ValidationSummary()
    <fieldset>
        <legend>New Satellitesite</legend>
        <div>
            @Html.LabelFor(m => m.SiteName, "Name")
            @Html.TextBoxFor(m => m.SiteName)
            @Html.ValidationMessageFor(m=>m.SiteName)
        </div>
        <br />

        <input type="submit" value="Save" />

    </fieldset>
}

Try this one .. @Html.ValidationSummary() helps in displaying the error messages.

于 2014-06-09T05:17:53.410 回答
0

如果您尝试了上述解决方案但仍然无效,那么您可能需要格式化您的视图文件。转到编辑高级格式文档。请记住,尝试格式化文件时不要处于调试模式,因为如果您正在调试项目,您将看不到上面列出的过程。

于 2016-05-19T05:58:04.240 回答
0

确保您的 View 引用 Scripts 标记中的 jQuery 验证 -

@section Scripts
{
    @Scripts.Render("~/bundles/jqueryval")
}
于 2017-11-30T16:21:55.963 回答