MVC 5 Html.ValidationSummary未显示错误

时间:2014-05-07 21:43:05

标签: asp.net-mvc validation

我在控制器中手动添加以下模型错误

ModelState.AddModelError(string.Empty, "An error occurred");

但是,加载视图时,@Html.ValidationSummary(true)未显示任何错误。

我也试过@Html.ValidationSummary(false)

我已经阅读了很多关于这种行为的文章,我已经尝试了所有的建议而没有运气。

非常感谢任何建议!

2 个答案:

答案 0 :(得分:2)

我可以看到它有效。请参阅此处的示例:http://dotnetfiddle.net/Jz7wQj

答案 1 :(得分:0)

使用自定义ViewData对象时请注意。

问题转载

<强>模型

using System.ComponentModel.DataAnnotations;

namespace BrokenValidationSummaryTest.Models
{
    public class MyModel
    {
        [Required]
        public string Whatever { get; set; }
    }
}

<强>控制器

using BrokenValidationSummaryTest.Models;
using System.Web.Mvc;

namespace BrokenValidationSummaryTest.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }

        [HttpPost]
        public ActionResult Submit(MyModel postedData)
        {
            return View(viewName: "Index", model: postedData);
        }
    }
}

查看&#34;索引&#34;

@model BrokenValidationSummaryTest.Models.MyModel

<ul class="nav nav-tabs" id="carrier-tabs">
    <li class="active">
        <a data-toggle="tab" href="#search" class="tab-level-1" data-tab-name="search">Search</a>
    </li>
</ul>

<div class="tab-content">
    <div id="search" class="tab-pane fade in active">
        @Html.Partial(partialViewName: "TabBody", model: Model, viewData: new ViewDataDictionary())
    </div>
</div>

查看&#34; TabBody&#34;

@model BrokenValidationSummaryTest.Models.MyModel

@Html.ValidationSummary(excludePropertyErrors: false)

<h2>TabBody</h2>

    @using (Html.BeginForm(actionName: "Submit", controllerName: "Home", method: FormMethod.Post))
    {
        <div>Whatever:</div>
        <div>@Html.TextBoxFor(x=>x.Whatever)</div>

        <input type="submit" value="Submit">
    }

说明

部分视图具有ValidationSummary HTML帮助程序。我们将自定义ViewData对象传递给局部视图。传递给局部视图的此自定义ViewData对象不包含在视图&#39;索引中找到的ViewState。 HTML帮助程序ValidationSummary没有足够的必需信息来正确呈现错误消息。

推荐:如果使用自定义ViewData,请使用父视图的ViewState填充自定义ViewData。