Asp.net mvc 3 从控制器向ASP.net MVC3中的视图发送错误消息
我很好奇如何做到这一点,我想为论坛和常规视图从控制器向视图发送一条自定义错误消息(因此寻找两者的示例)。我已经看到了Asp.net mvc 3 从控制器向ASP.net MVC3中的视图发送错误消息,asp.net-mvc-3,model-view-controller,Asp.net Mvc 3,Model View Controller,我很好奇如何做到这一点,我想为论坛和常规视图从控制器向视图发送一条自定义错误消息(因此寻找两者的示例)。我已经看到了ModelState.AddError()我是如何控制错误消息的外观的,该错误消息能够在前端以div形式包装它 有什么想法吗 我对ASP.net非常陌生,关于ASP.net的教程对我来说似乎非常混乱。因此,我没有任何代码可以显示,因为我不确定我应该做什么。您可能需要查看ViewBag对象。如果在控制器中设置了ViewBag.ErrorMessage,则它将作为字符串在视图中可用。事
ModelState.AddError()
我是如何控制错误消息的外观的,该错误消息能够在前端以div形式包装它
有什么想法吗
我对ASP.net非常陌生,关于ASP.net的教程对我来说似乎非常混乱。因此,我没有任何代码可以显示,因为我不确定我应该做什么。您可能需要查看
ViewBag
对象。如果在控制器中设置了ViewBag.ErrorMessage
,则它将作为字符串在视图中可用。事实上,你可以随意命名,而不仅仅是错误信息
添加此项并在视图中包含逻辑,以便仅在时显示!string.IsNullOrEmpty(ViewBag.ErrorMessage)
您应该很好
这只是多种方法中的一种ViewBag
只是ViewData
上的一个包装器,因此如果您被卡住了,您可能还需要查看该对象
虽然这个答案并不全面,但希望它能给你一个起点
祝你好运 我相信您希望自定义视图中的错误消息。您可以通过三种方式自定义错误消息,包括使用
ModelState.addmodeleror(“,”error message“)
添加的错误消息
选择1
使用Html.ValidationSummary()
并通过validation summary errors
类自定义其外观。默认情况下,VS中的默认mvc项目模板将包括该类。它的默认颜色是红色(我想)。但实际上,您可以通过更改该类来控制错误摘要的各个方面
.validation-summary-errors {
border: 5px solid red; // thick red border
color: #3904D9; // dark blue
font-size: 1.5em; // quite big fonts
font-weight: bold;
}
选择2
ValidationSummary
以无序列表(li
)的形式输出消息。如果您的项目需要以不同的方式显示错误消息,您可以通过检查ViewDataDictionary
在视图上执行此操作。下面的代码将在带有红色细边框的单独div中写入错误消息。该样式是内联编写的,以简化示例
@foreach (var item in ViewData.ModelState) {
if (item.Value.Errors.Any()) {
foreach (ModelError e in item.Value.Errors) {
<div style="border: 1px solid red;margin-bottom:5px;">
@e.ErrorMessage</div>
}
}
}
我想知道如何将错误从控制器发送到视图?是ModelState.AddError()吗?@网站你到底想做什么?使用
ModelState.AddModelError
public static class HtmlExtensions {
public static MvcHtmlString CustomValidationSummary(this HtmlHelper helper)
{
var html = string.Empty;
foreach (var item in helper.ViewData.ModelState)
{
if (item.Value.Errors.Any()) {
foreach (ModelError e in item.Value.Errors) {
html
+= "<div style='border: 1px solid red;margin-bottom:5px;'>"
+ e.ErrorMessage
+ "</div>";
}
}
}
return MvcHtmlString.Create(html);
}
}
@Html.CustomValidationSummary()