我在控制器中手动添加以下模型错误
ModelState.AddModelError(string.Empty, "An error occurred");
但是,加载视图时,@Html.ValidationSummary(true)
未显示任何错误。
我也试过@Html.ValidationSummary(false)
。
我已经阅读了很多关于这种行为的文章,我已经尝试了所有的建议而没有运气。
非常感谢任何建议!
答案 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。