跟踪 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?
这是一个简单的网站 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?