【问题标题】:How to Display Validation Error Messages on an ASP.NET MVC Page?如何在 ASP.NET MVC 页面上显示验证错误消息?
【发布时间】:2010-05-13 22:49:59
【问题描述】:

我对 ASP.NET 和 C# 还很陌生,我花了一天时间学习 ASP.NET Membership 提供程序的基础知识,我已经构建了所有验证器,但在页面上输出我的错误消息时遇到了困难。

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,将变量结果输出到页面上的最佳方式是什么。

【问题讨论】:

  • 这是使用 ASP.NET MVC 还是 WebForms?另外,您希望在页面上显示状态的任何特定控件吗?
  • ASP.NET MVC,我没有为它设置任何控件,因为我有点不确定它可以写入哪些控件。 合适吗?还是我走错了方向。
  • 该私有方法属于哪个类 - 控制器?您能否发布调用它的控制器操作的代码?
  • 附言。使用 ASP.NET MVC,使用带有 runat="server" 的任何东西都会完全走错方向。

标签: c# html asp.net-mvc asp.net-membership membership-provider


【解决方案1】:

MVC

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

ASP.NET MVC Html.ValidationSummary(true) does not display model errors

基本上,您需要将错误 message 以及存在 错误的事实从控制器传播到您的视图。 ModelStateDictionary.AddModelError() 将为您完成这两项任务。

然后您可以使用ValidationExtensions.ValidationSummary() 进行显示。

网络表单

您没有为此使用验证器。大多数人没有。一个简单样式的 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

基本上你在后面的代码中将 ErrorMessageisValid 参数设置为相关的验证器。相关的ValidationSummary应该会显示错误信息。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-09
        • 1970-01-01
        • 1970-01-01
        • 2020-08-07
        • 2014-09-23
        • 1970-01-01
        • 2020-07-18
        • 2016-04-20
        相关资源
        最近更新 更多