5

Я довольно новичок в 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 ?? 

} 

Что является лучшим способом для вывода varible результата на страницу, как я не опирался на встроенных в ASP: валидаторы до сих пор.

+0

Является ли это с помощью ASP.NET MVC или WebForms? Кроме того, есть ли у вас какие-либо конкретные элементы управления на странице, на которой вы хотите отобразить статус? –

+0

ASP.NET MVC, я не использовал для этого никаких элементов управления, так как я немного не уверен в том, какие элементы управления он может писать. Будет ли соответствующим? или я дрейфую в неправильном направлении. – Yardstermister

+0

Каким классом принадлежит этот частный метод - контроллер? Не могли бы вы отправить код для действия контроллера, который его вызывает? – Charlino

ответ

8

MVC

Смотрите хороший пример ...

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

В принципе, вы должны распространять ошибки сообщение а также тот факт, что является ошибка на ваш взгляд с вашего контроллера. 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

Это неправильно для ASP.NET MVC - но вы не знали, что при публикации ответа, поэтому я не буду голосовать. – Charlino

+0

@ Чарлино: Я вижу разъяснение MVC. AFAIK Основной процесс должен работать с MVC. Например. http://stackoverflow.com/questions/446533/what-is-the-status-of-runatserver-tags-in-asp-net-mvc. Но я обновлю. – kervin

+0

Мне очень нравится этот ответ :) –

0

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

+0

Это неправильно для ASP.NET MVC - но вы не знали, что при публикации ответа, поэтому я не буду голосовать. – Charlino

0

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

+1

Это неправильно для ASP.NET MVC - но вы не знали, что при публикации ответа, поэтому я не буду голосовать. – Charlino

0

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

 Смежные вопросы

  • Нет связанных вопросов^_^