2010-03-06 80 views
1

我有下面的代碼,我不知道,我們是錯誤的:驗證文本框在MVC

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult Create(factura fac) 
    { 
     if (fac.numar>0) 
      ModelState.AddModelError("numar", "Numar este invalid ."); 
     if (fac.serie.Trim().Length == 0) 
      ModelState.AddModelError("serie", "Serie invalida"); 

     if (!ModelState.IsValid) return View("Create", fac); 

    } 

在這裏,我嘗試驗證一個文本框「意甲」,我得到了以下錯誤

Object reference not set to an instance of an object. 

謝謝

+0

它也許值得研究DataAnnotation,MetaData和一個小小的jQuery.validate,這樣你就不必通過檢查來編碼你的方式,因爲它代表你必須做上面的代碼進行編輯和創建,併爲此重複代碼。有一個關於DataAnnotation的搜索是完成所有這些工作的有效工具。然後添加一個ModelState.IsValid,而不是如果這樣,如果等等等等也有一個新的速記助手現在發佈,而不是接受動詞,你可以使用[HttpPost]但上面我會逐步通過,看看fac和這會讓你跑下來的領域和價值觀 – davethecoder 2010-03-07 11:08:18

回答

1

首先,請您重新格式化以便閱讀?即把所有的代碼塊?

接下來,調試和檢查這些表情,看看他們是空:

  • fac.serie
  • FAC

看起來要麼是空可能拋出此異常。這可能是後者。如果合適,在評估之前將其包含在警戒條件中以檢查它是否爲空。

0

檢查string.IsNullOrEmpty(fac.serie)string.IsNullOrWhitespace(fac.serie)

最有可能serie爲空。