Asp.net 在MVC中验证表单时如何检查空对象引用
我正在尝试在asp.NETMVC框架中验证表单 目前我主要关注服务器端验证。我遇到了一个错误,我不知道如何纠正 System.NullReferenceException:对象引用未设置为对象的实例 引发错误的代码是: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
[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.");
}