當我調用我的控制器之一的編輯動作時出現此錯誤。Html.TextBox()拋出System.NullReferenceException
下面是編輯操作方法
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(cedetails detailToEdit)
{
validateDetail(detailToEdit);
if (!ModelState.IsValid)
return View();
try
{
var originaldetail = (from d in entity1.cedetails
where d.detail_id == detailToEdit.detail_id
select d).FirstOrDefault();
entity1.ApplyPropertyChanges(originaldetail.EntityKey.EntitySetName, detailToEdit);
entity1.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View();
}
}
的C#代碼這是validateDetail方法:
<%= Html.TextBox("c_name", Model.c_name) %>
:
protected void validateDetail(cedetails detailToValidate)
{
if (detailToValidate.c_name.Trim().Length == 0)
ModelState.AddModelError("c_name", "C name is required.");
ModelState.SetModelValue("c_name", ValueProvider["c_name"]);
if (detailToValidate.a_server.Trim().Length == 0)
ModelState.AddModelError("a_server", "A server is required.");
ModelState.SetModelValue("a_server", ValueProvider["a_server"]);
if (detailToValidate.d_server.Trim().Length == 0)
ModelState.AddModelError("d_server", "D server is required.");
ModelState.SetModelValue("d_server", ValueProvider["d_server"]);
if (detailToValidate.l_server.Trim().Length == 0)
ModelState.AddModelError("l_server", "L server is required.");
ModelState.SetModelValue("l_server", ValueProvider["l_server"]);
if (detailToValidate.url.Trim().Length == 0)
ModelState.AddModelError("url", "URL is required.");
ModelState.SetModelValue("url", ValueProvider["url"]);
if (detailToValidate.s_id.Trim().Length == 0)
ModelState.AddModelError("s_id", "S ID is required.");
ModelState.SetModelValue("s_id", ValueProvider["s_id"]);
}
我在這行得到錯誤異常詳細信息: System.NullReferenceException:Object referen ce未設置爲對象的實例。
我已經搜索了這個錯誤,併發生在幾個解決方案,但沒有人爲我工作。請讓我知道這是否可以解決。我還會補充一點,我選擇隱藏視圖中的某些表列,包括detail_id,不僅僅是顯示它們。
幾乎所有'NullReferenceException'的情況都是相同的。請參閱「[什麼是.NET中的NullReferenceException?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-in-net)」的一些提示。 – 2014-05-15 19:23:55