2

我在 MVC 3 中遇到了这个奇怪的问题。

我有一个强类型视图和一个具有 SaveMethod(Employee emp) 的控制器。

但是当我点击保存时,它没有点击保存方法并抛出以下错误。

我认为可能存在模型粘合剂问题。但是我怎么知道哪个属性有问题?

我很难找到50的房产

例外:

Unable to cast object of type 'System.Int32' to type 'System.String'.

来源:System.ComponentModel.DataAnnotations

堆栈跟踪

在 System.ComponentModel.DataAnnotations.StringLengthAttribute.IsValid(Object value) 在 System.ComponentModel.DataAnnotations.ValidationAttribute.IsValid(Object value, ValidationContext validationContext) 在 System.ComponentModel.DataAnnotations.ValidationAttribute.GetValidationResult(Object value, ValidationContext validationContext) 在 System .Web.Mvc.DataAnnotationsModelValidator.d_ 1.MoveNext() 在 System.Web.Mvc.ModelValidator.CompositeModelValidator.d_5.MoveNext() 在 System.Web.Mvc.DefaultModelBinder.OnModelUpdated(ControllerContext controllerContext, ModelBindingContext bindingContext) 在 System.Web.Mvc.DefaultModelBinder.BindComplexElementalModel(ControllerContext controllerContext, ModelBindingContext bindingContext, Object model) 在 System.Web.Mvc.DefaultModelBinder .BindComplexModel(ControllerContext controllerContext, ModelBindingContext bindingContext) 在 System.Web.Mvc.DefaultModelBinder.BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) 在 System.Web.Mvc.ControllerActionInvoker.GetParameterValue(ControllerContext controllerContext, ParameterDescriptor parameterDescriptor) 在 System.Web.Mvc。 System.Web.Mvc 上的 ControllerActionInvoker.GetParameterValues(ControllerContext controllerContext, ActionDescriptor actionDescriptor)。ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)

如何检查导致此问题的属性?

4

2 回答 2

9

在我看来,您已将 [StringLength] 应用于模型上的整数属性:

public class MyModel {
  [StringLength]
  public int SomeValue { get; set; }
}

这将引发您所看到的那种错误。

于 2013-05-13T10:36:05.563 回答
3

如果您将StringLength属性应用于 type的属性,请查看您的模型int

于 2013-05-13T10:35:11.120 回答