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

时间:2010-05-28 17:22:56

标签: asp.net validation nullreferenceexception

我正在尝试在asp.net MVC框架中验证表单。

我暂时专注于服务器端验证。我遇到了一个错误,我不确定如何纠正。

  

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();
        }
    }

当我在字段中放置空格时,它会按照我想要的方式执行,但如果我将该字段留空并按提交,则会收到错误。

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

全部谢谢 -

1 个答案:

答案 0 :(得分:3)

if (string.IsNullOrEmpty(mc.Member.Username) || (mc.Member.Username.Trim()==string.Empty))
{
    ModelState.AddModelError("Member.Username", "Username is required.");
}