如何在ASP.NET MVC页面上显示验证错误消息?
我对ASP.NET和C#相当新颖我已经花了一天时间学习ASP.NET成员资格提供程序的基础知识我已经构建了所有的验证程序,但在页面上输出错误消息时被卡住了。如何在ASP.NET MVC页面上显示验证错误消息?
private void LogCreateUserError(MembershipCreateStatus status, string username)
{
string reasonText = status.ToString();
switch (status)
{
case MembershipCreateStatus.DuplicateEmail:
case MembershipCreateStatus.DuplicateProviderUserKey:
case MembershipCreateStatus.DuplicateUserName:
reasonText = "The user details you entered are already registered.";
break;
case MembershipCreateStatus.InvalidAnswer:
case MembershipCreateStatus.InvalidEmail:
case MembershipCreateStatus.InvalidProviderUserKey:
case MembershipCreateStatus.InvalidQuestion:
case MembershipCreateStatus.InvalidUserName:
case MembershipCreateStatus.InvalidPassword:
reasonText = string.Format("The {0} provided was invalid.", status.ToString().Substring(7));
break;
default:
reasonText = "Due to an unknown problem, we were not able to register you at this time";
break;
}
//CODE TO WRITE reasonText TO THE HTML PAGE ??
}
什么是最好的方式输出变量的结果到页面上,因为我依赖内置的ASP:Validators直到现在。
MVC
见一个很好的例子......
ASP.NET MVC Html.ValidationSummary(true) does not display model errors
基本上,你需要传播错误消息并且也是事实,有是错误从您的控制器中查看。 ModelStateDictionary.AddModelError()将为您处理这两项任务。
然后您可以使用ValidationExtensions.ValidationSummary()来显示。
Web表单
你不有使用验证这一点。大多数人不会。一个简单的风格DIV应该很好。
例如。
<div id="errorMessageDiv" runat="server"></div>
通知的RUNAT参数。
现在在你的后台代码,你可以尝试
errorMessageDiv.innerHTML = "some error message";
如果你真的想使用验证结账......
基本上你设定的的ErrorMessage和isValid参数后面的代码中的相关验证程序。相关的验证摘要应显示错误消息。
只需在页面中添加一个asp标签控件,然后用返回值设置它的文本属性。
这对于ASP.NET MVC是错误的 - 但你不知道在发布答案时,所以我不会投票。 – Charlino 2010-05-13 23:06:30
如果使用WebForms,则可以使用Label控件并将其结果的'.Text'属性设置为它。或者一个Panel控件。或专门用于输出错误消息的UserControl(这是我所做的),您可以添加到您的MasterPage。
这对于ASP.NET MVC是错误的 - 但你不知道在发布答案时,所以我不会投票。 – Charlino 2010-05-13 23:06:50
您可以使用验证摘要或者你可以使用一个标签控件来显示错误消息
这是使用ASP.NET MVC或Web表单?另外,您是否在页面上有任何特定的控件,您希望显示状态? – 2010-05-13 22:52:53
ASP.NET MVC,我还没有放置任何控件,因为我有点不确定它可以写入什么控件。 是否合适?还是我在错误的方向漂流? –
Yardstermister
2010-05-13 22:57:28
私人方法属于哪一类 - 控制器?你可以发布控制器操作的代码来调用它吗? – Charlino 2010-05-13 23:04:41