2016-04-13 2 views
-1

Ceci est pour une interface utilisateur Web simple. Un formulaire qui permet à l'utilisateur de créer un nouveau marqueur. Cela a fonctionné avec Validation hier, mais semble s'être arrêté aujourd'hui. Il lance maintenant une exception NullReferenceException à un certain point. Commenter la référence déplace l'exception dans le fichier.Suivi d'une exception 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") 
); 

éléments de formulaire HTML

 <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> 

écran 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

C'est probablement dû à la notation hongroise! – briantyler

+0

Je l'ai seulement fait pour les champs de date pour faire la séparation entre la variable C# var du html var plus facile pendant le dépannage – Hecatonchires

Répondre

1

Est-ce dû à votre @ cellNumber1.ToString?

+0

J'ai honte. Je pensais que le problème était au-dessus: / – Hecatonchires

0

Dans vos paramètres Exception, cochez NullReferenceException sous les exceptions système. Cela fera en sorte qu'il sera lancé à la première place.

Vous pouvez accéder à la fenêtre d'exceptions de débogage -> Windows -> Exceptions dans VS 2015

+0

J'utilise 2013, mais merci – Hecatonchires

+0

Vous pouvez faire la même chose en 2013 ainsi https: // msdn. microsoft.com/fr-fr/library/038tzxdw(v=vs.120).aspx –