Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 在MVC中验证表单时如何检查空对象引用_Asp.net_Validation_Nullreferenceexception - Fatal编程技术网

Asp.net 在MVC中验证表单时如何检查空对象引用

Asp.net 在MVC中验证表单时如何检查空对象引用,asp.net,validation,nullreferenceexception,Asp.net,Validation,Nullreferenceexception,我正在尝试在asp.NETMVC框架中验证表单 目前我主要关注服务器端验证。我遇到了一个错误,我不知道如何纠正 System.NullReferenceException:对象引用未设置为对象的实例 引发错误的代码是: [AcceptVerbs(HttpVerbs.Post)] public ActionResult Create([Bind(Exclude="ID")] MembersCreate mc ) { mc.Modules = ModuleListDa

我正在尝试在asp.NETMVC框架中验证表单

目前我主要关注服务器端验证。我遇到了一个错误,我不知道如何纠正

System.NullReferenceException:对象引用未设置为对象的实例

引发错误的代码是:

[AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Create([Bind(Exclude="ID")] MembersCreate mc )
    {
        mc.Modules = ModuleListDataContext.GetModuleList();
        ViewData.Model = mc;

        //Validation using ModelState

        //
        //
        //line below errors when form field is empty
        //
        if ((string)mc.Member.Username.Trim() == "")
            ModelState.AddModelError("Member.Username", "Username is required.");

        if (!ModelState.IsValid)
            return View();

        try
        {
            // TODO: Add insert logic here

            return RedirectToAction("Index","Home");
        }
        catch
        {
            return View();
        }
    }
当我在字段中添加空格时,它的性能完全符合我的要求,但是如果我将字段留空并按submit键,则会出现错误

避免此错误并仍然验证空白表单字段的最佳方法是什么


谢谢大家-

非常感谢!这是可行的,但我不明白这是怎么回事,我试过的其他代码也不行。它似乎使用了与以前相同的引用。如果字段username中没有数据,则关联的属性将为null,因此您无法对其调用trim,因此它要做的第一件事是检查username属性是否为null,如果不检查它是否只包含spacesThanks,请多多解释。非常感谢!这是可行的,但我不明白这是怎么回事,我试过的其他代码也不行。它似乎使用了与以前相同的引用。如果字段username中没有数据,则关联的属性将为null,因此您无法对其调用trim,因此它要做的第一件事是检查username属性是否为null,如果不检查它是否只包含spacesThanks,请详细说明。
if (string.IsNullOrEmpty(mc.Member.Username) || (mc.Member.Username.Trim()==string.Empty))
{
    ModelState.AddModelError("Member.Username", "Username is required.");
}