嗨,我的 Controller 中有一个方法,并具有以下代码
if (ModelState.IsValid)
{
IDataOperations ops = DataSession.GetDataOperations(null);
List<Department> dept = new List<Department>();
ops.Load(dept);
ops.Commit();
int deptId = dept[dept.Count - 1].Id + 1;
Department department = new Department()
{
Id = deptId,
CompanyId = deptModel.CompanyId,
Active = deptModel.Active,
Name = deptModel.Name
};
ops.Create(department);
ops.Commit();
return RedirectToAction("CompanyDepartment", "Task");
}
else
{
//some code
每次页面运行时,它总是转到 else 部分,这意味着模型状态无效。 如何检查页面中的错误在哪里,我可以添加什么代码来显示页面中的错误在哪里。
谢谢
最佳答案
你可以通过下面的代码来遍历modelstate集合,通过这个调试,你会看到,你的代码会进入for循环,你就可以明白,错误是什么。
#if DEBUG
/// <summary>
/// Output the properties which are causing the issues when
/// the model is binding.
/// </summary>
public static void ModelStateErrors (ModelStateDictionary modelState)
{
var errors = modelState.Where(a => a.Value.Errors.Count > 0)
.Select(b => new { b.Key, b.Value.Errors })
.ToArray();
foreach (var modelStateErrors in errors)
{
System.Diagnostics.Debug.WriteLine("...Errored When Binding.", modelStateErrors.Key.ToString());
}
}
#endif
关于asp.net-mvc - 即使用户输入的数据没有错误,我的模型状态也始终无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11392512/