asp.net-mvc - 即使用户输入的数据没有错误,我的模型状态也始终无效

标签 asp.net-mvc asp.net-mvc-3 telerik-mvc asp.net-mvc-3-areas

嗨,我的 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/

相关文章:

asp.net-mvc - 没有为此对象定义无参数构造函数。在 ASP.NET MVC Controller 中

asp.net-mvc - 如何使用程序集版本重命名构建名称?

asp.net-mvc - HTML.HiddenFor 值集

telerik - 如何使用复选框控件设置 Kendo UI mvc 网格

asp.net-mvc-3 - 向 Telerik MVC 网格发送附加数据

c# - ASP.NET Identity - 匿名配置文件

asp.net-mvc - 如何让 Html.BeginForm 获取到正确的 MVC 路由

javascript - 如果我的 javascript 变量在 mvc3 中的值中有 at 符号怎么办?

asp.net-mvc-3 - 使用 Razor 在 Telerik MVC3 网格中选择筛选器选项

asp.net-mvc - 在 Razor 语法中为 Telerik MVC Grid 定义模板列