如何在ASP.NET MVC页面上显示验证错误消息?

Yar*_*ter 6 html c# asp.net-mvc asp.net-membership membership-provider

我是ASP.NET和C#的新手我花了一天时间学习ASP.NET成员资格提供程序的基础知识我已经构建了所有的验证程序,但是在页面上输出我的错误消息时遇到了困难.

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 ??

}
Run Code Online (Sandbox Code Playgroud)

将可变结果输出到页面的最佳方法是什么,因为我依赖于内置的ASP:Validators,直到现在.

ker*_*vin 9

MVC

看一个很好的例子......

ASP.NET MVC Html.ValidationSummary(true)不显示模型错误

基本上,你需要传播错误信息,也即事实,那就是一个错误,从控制器的看法. ModelStateDictionary.AddModelError()将为您处理这两项任务.

然后,您可以使用ValidationExtensions.ValidationSummary()来显示.

Web表单

你不具备使用验证这一点.大多数人没有.一个简单的风格DIV应该很好.

例如.

<div id="errorMessageDiv" runat="server"></div>
Run Code Online (Sandbox Code Playgroud)

注意runat参数.

现在在您的代码隐藏中,您可以尝试

errorMessageDiv.innerHTML = "some error message";
Run Code Online (Sandbox Code Playgroud)

如果你真的想使用验证器结账......

http://weblogs.asp.net/ashicmahtab/archive/2008/12/12/putting-messages-into-a-validationsummary-control-from-code.aspx

基本上,您将ErrorMessageisValid参数设置为后面代码中的相关验证器.相关的ValidationSummary应显示错误消息.