2017-01-23 1 views
-1

Я пытаюсь создать веб-сайт, который требует от пользователя выбрать дату начала и дату предоставления услуг. В настоящее время я пытаюсь создать исключение, если дата начала после выбранной даты. Я могу включить исключение, но не знаю, куда отбрасывать исключение. Код у меня выглядит следующим образом:как выбросить исключение в Visual Studio Web Site Project

public partial class CalendarRange : System.Web.UI.UserControl 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (IsPostBack) 
     { 
      // This code will only run on the first page load event 
      this.CalStartDate.SelectedDate = DateTime.Today; 
      this.CalThroughDate.SelectedDate = DateTime.Today; 
     } 
     else 
     { 
      // if the starting date is past the through date 
      if (this.StartDate > this.ThroughDate) 
      { 
        throw new Exception("dates are bogus"); 

      } 
     } 

    } 
    /** 
    * "Get" (accessors) methods for start and through dates 
    * 
    */ 

    public DateTime StartDate 
    { 
     get 
     { 

      return CalStartDate.SelectedDate; 
     } 
    } 

    public DateTime ThroughDate 
    { 
     get 
     { 
      return CalThroughDate.SelectedDate; 
     } 
    } 

} 

Где я должен бросить исключение, и она должна быть на странице Default.aspx.cs или текущей страницы (CalendarRange.ascx.cs)?

+2

Я бы сказал, что вы вообще не бросаете исключение. У вас есть проблема проверки данных, которая может обрабатываться с помощью рабочего процесса. Это не исключительное событие, из которого вы не можете оправиться. – Crowcoder

ответ

0

Если вы сделаете подобное исключение, это остановит обработку веб-страниц. То, что вы делаете, является проверкой ввода, и поэтому вы должны использовать валидаторы.

В этом случае вы можете использовать CustomValidator с серверным методом. Больше с примером внизу: https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.customvalidator.aspx