2016-04-13 23 views
-1

Dies ist für eine einfache Webbenutzeroberfläche. Ein Formular, mit dem der Benutzer einen neuen Marker erstellen kann. Es hat gestern mit Validation funktioniert, scheint aber heute aufgehört zu haben. Es löst jetzt eine NullReferenceException an einem bestimmten Punkt aus. Das Auskommentieren der Referenz verschiebt die Ausnahme zurück in die Datei.Verfolgen einer NullReferenceException

Definy Bits

const string sDateTimeFormat = "dd-MM-yyyy HH:mm:ss"; 
DateTime dtStartPeriod = DateTime.MinValue; 
DateTime dtEndPeriod = DateTime.MinValue; 
DateTime createDate = DateTime.Now; 
string cellNumber1 = null; 
string cellNumber2 = null; 
string cellNumber3 = null; 

if (int.TryParse(Request.Form["vehicleId"], out value)) 
{ 
    vehicleId = value; 
} 
else 
{ 
    vehicleId = -1; 
} 

Validation.Add("vehicleId", 
    Validator.Integer("You must choose a valid vehicle"), 
    Validator.Required("You must choose a vehicle from the list"), 
    Validator.Range(1000, 9999, "Pick a vehicle from the list provided") 
); 

Validation.Add("startDate", 
    Validator.DateTime(), 
    Validator.Required("Start date is a required field"), 
    Validator.StringLength(19, 19, "Start date's format is " + sDateTimeFormat + " and is 19 characters long") 
); 

Validation.Add("endDate", 
    Validator.DateTime(), 
    Validator.Required("End date is a required field"), 
    Validator.StringLength(19, 19, "End date's format is " + sDateTimeFormat + " and is 19 characters long") 
); 

HTML-Formularelemente

 <fieldset name="startDateFieldSet"> 
      <label for="startDateControl">Pick Start Date</label> 
      <input type="datetime" 
        name="startDate" 
        id="startDateControl" 
        class="@Validation.ClassFor("startDate")" 
        value="@((dtStartPeriod == DateTime.MinValue) ? "" : dtStartPeriod.ToString(sDateTimeFormat))" /> 

      @Html.ValidationMessage("startDate") 
      <br /><span class="requiredFormat">@sDateTimeFormat</span> 
     </fieldset> 

     <fieldset name="endDateFieldSet"> 
      <label for="endDateControl">Pick End Date</label> 
      <input type="datetime" 
        name="endDate" 
        id="endDateControl" 
        class="@Validation.ClassFor("endDate")" 
        value="@((dtEndPeriod == DateTime.MinValue) ? "" : dtEndPeriod.ToString(sDateTimeFormat))" /> 

      @Html.ValidationMessage("endDate") 
      <br /><span class="requiredFormat">@sDateTimeFormat</span> 
     </fieldset> 

Screenshots screenshot 1 http://www.ctrackonline.com.au/screenshots/anchor-1.jpg
screenshot 2 http://www.ctrackonline.com.au/screenshots/anchor-2.jpg
screenshot 3 http://www.ctrackonline.com.au/screenshots/anchor-3.jpg
screenshot 4 http://www.ctrackonline.com.au/screenshots/anchor-4.jpg

+0

Es ist wahrscheinlich durch die ungarische Notation verursacht! – briantyler

+0

Ich habe nur das zu den Datumsfeldern gemacht, um die Trennung zwischen der C# var aus der html var einfacher zu machen während der Fehlerbehebung früher – Hecatonchires

Antwort

1

Ist es aufgrund Ihrer @ cellNumber1.ToString?

+0

Ich schäme mich. Ich dachte, das Problem wäre oben: / – Hecatonchires

0

In Ihren Ausnahmen Einstellungen deaktivieren Sie NullReferenceException unter den Systemausnahmen. Das wird dazu führen, dass es an die erste Stelle geworfen wird, an der es auftritt.

Sie können die Ausnahmen Fenster von Debug zugreifen -> Fenster -> Ausnahmen in VS 2015

+0

Ich benutze 2013, aber danke – Hecatonchires

+0

Sie können das gleiche tun im Jahr 2013 sowie https: // msdn. microsoft.com/en-us/library/038tzxdw(v=vs.120).aspx –