跟踪 NullReferenceException

Tracing a NullReferenceException

这是一个简单的网站 UI。允许用户创建新标记的表单。它昨天与 Validation 一起工作,但今天似乎已停止。它现在在某个点抛出 NullReferenceException。注释掉引用会将异常移回文件中。

定义位

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 表单元素

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

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

在您的异常设置中,勾选系统异常下的 NullReferenceException。这将导致它在它出现的第一个地方被抛出。

您可以从调试访问异常 window --> Windows --> VS 2015 中的异常

是不是因为你的@cellNumber1.ToString?