“/”应用程序中的服务器错误。
无法将类型为“System.Int32”的对象强制转换为类型“System.String”。
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息: System.InvalidCastException: 无法将类型为“System.Int32”的对象强制转换为类型“System.String”。
源错误:
执行当前 Web 请求期间生成了未经处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 |
近日,在提交资料的时候遇到这个错误。但是在页面的堆栈跟踪中并没有明确是哪行的问题。检查mvc中model的类型定义,都正确。使用断点跟踪,可是没到断点跟踪那一行,页面就出现了错误。
我用日志输出,在MVC提交的action第一行日志输出,居然都没执行,这说明action动作还没执行。那只能是model验证的错误。这难办了。没法定位,在网上搜索没有有效的答案。最后通过注释掉model项,一行一行的排查,这才找到问题所在。
[Required]
[DisplayName("职务"), StringLength(50)]
public int RoleLevel { get; set; }
这是个int 类型的字段,手贱,直接复制的是一个string类型的字段属性定义。把 StringLength也复制过来了。 而 int 类型的字段是没有 StringLength 属性的
去掉StringLength(50)然后编译。没问题了