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

时间:2010-05-13 22:49:59

标签: c# html 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 ??

}

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

4 个答案:

答案 0 :(得分:9)

<强> 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";

如果您真的想使用验证器结帐......

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

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

答案 1 :(得分:0)

只需在页面中添加一个asp标签控件,然后使用返回值设置它的text属性。

答案 2 :(得分:0)

如果使用WebForms,您可以使用Label控件并使用结果设置它的“.Text”属性。或Panel控件。或者UserControl专门用于输出您可以添加到MasterPage的错误消息(这就是我所做的)。

答案 3 :(得分:0)

您可以使用验证摘要,也可以使用标签控件来显示错误消息