Asp.net mvc MVC中的验证文本框

Asp.net mvc MVC中的验证文本框,asp.net-mvc,validation,Asp.net Mvc,Validation,我有以下代码,我不知道是错误: [AcceptVerbs(HttpVerbs.Post)] public ActionResult Create(factura fac) { if (fac.numar>0) ModelState.AddModelError("numar", "Numar este invalid ."); if (fac.serie.Trim().Length == 0)

我有以下代码,我不知道是错误:

    [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);

    }
在这里,我尝试验证一个文本框“serie”,我得到了以下错误

Object reference not set to an instance of an object.

谢谢

首先,请重新格式化以便阅读?把所有代码放在一个块里

接下来,调试并检查这些表达式是否为null:

  • 学院系列
  • 工厂

看起来null或null都可能引发此异常。可能是后者。如果合适的话,在计算前用保护条件包装以检查它是否为空。

首先,请重新格式化以便于阅读?把所有代码放在一个块里

接下来,调试并检查这些表达式是否为null:

  • 学院系列
  • 工厂

看起来null或null都可能引发此异常。可能是后者。如果合适,在计算之前,将其包装在一个保护条件中以检查它是否为空。

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


最有可能的
serie
为空。

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


最有可能的
serie
为空。

可能还值得研究DataAnnotation、元数据和一些jQuery.validate,这样您就不必通过检查来编码,因为您必须执行上述代码来编辑和创建代码,从而复制代码。搜索DataAnnotation是完成这一切的一个极好的工具。然后添加一个ModelState.IsValid而不是if this,if that etc等还有一个新的post速记助手而不是accept动词你可以直接使用[HttpPost],但对于上面的内容,我将逐步介绍并查看fac,这将为你提供字段和值的详细信息。这可能也值得查看DataAnnotation,元数据和一点jQuery.validate,这样您就不必通过检查来编码,因为您必须执行上面的代码来编辑和创建代码,从而复制代码。搜索DataAnnotation是完成这一切的一个极好的工具。然后添加一个ModelState.IsValid,而不是if this,if that etc等。现在还有一个新的post速记助手,而不是accept动词。您可以使用[HttpPost],但对于上面的内容,我将逐步浏览并查看fac,这将为您提供字段和值的详细信息