Как отобразить сообщения об ошибках проверки на странице ASP.NET MVC? - PullRequest
6 голосов
/ 14 мая 2010

Я довольно новичок в 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: валидаторы.

Ответы [ 4 ]

9 голосов
/ 14 мая 2010

MVC

См. Хороший пример ...

ASP.NET MVC Html.ValidationSummary (true) не отображает ошибки модели

Как правило, вам нужно распространять сообщение об ошибке , а также тот факт, что является ошибкой для вашего представления с вашего контроллера. ModelStateDictionary.AddModelError () позаботится об обеих этих задачах за вас.

Затем вы можете использовать ValidationExtensions.ValidationSummary () для отображения.

WebForms

У вас нет , чтобы использовать для этого валидатор. Большинство людей этого не делают. Простой стиль 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 должно отображать сообщение об ошибке.

0 голосов
/ 14 мая 2010

Вы можете использовать сводку проверки или элемент управления метками для отображения сообщения об ошибке

0 голосов
/ 14 мая 2010

Если вы используете WebForms, вы можете использовать элемент управления Label и установить его свойство «.Text» вместе со своим результатом. Или панель управления. Или UserControl специально для вывода сообщений об ошибках (это то, что я делаю), которые вы можете добавить в свою MasterPage.

0 голосов
/ 14 мая 2010

Просто добавьте элемент управления меткой asp на страницу и затем установите его текстовое свойство с помощью возвращаемой переменной.

...