Rya*_*ill 10 asp.net asp.net-mvc asp.net-mvc-2
这是我使用MVC2时遇到的错误:
Either ErrorMessageString or ErrorMessageResourceName must be set, but not both.
Run Code Online (Sandbox Code Playgroud)
它来自[Required] Validation DataAnnotation.
堆栈跟踪:
InvalidOperationException: Either ErrorMessageString or ErrorMessageResourceName must be set, but not both.]
System.ComponentModel.DataAnnotations.ValidationAttribute.SetupResourceAccessor() +89338
System.ComponentModel.DataAnnotations.ValidationAttribute.FormatErrorMessage(String name) +38
System.Web.Mvc.<Validate>d__1.MoveNext() +215
System.Web.Mvc.<Validate>d__5.MoveNext() +735
System.Web.Mvc.DefaultModelBinder.OnModelUpdated(ControllerContext controllerContext, ModelBindingContext bindingContext) +424
System.Web.Mvc.DefaultModelBinder.BindComplexModel(ControllerContext controllerContext, ModelBindingContext bindingContext) +732
System.Web.Mvc.ControllerActionInvoker.GetParameterValue(ControllerContext controllerContext, ParameterDescriptor parameterDescriptor) +475
System.Web.Mvc.ControllerActionInvoker.GetParameterValues(ControllerContext controllerContext, ActionDescriptor actionDescriptor) +152
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +709
System.Web.Mvc.Controller.ExecuteCore() +162
System.Web.Mvc.<>c__DisplayClass8.<BeginProcessRequest>b__4() +58
System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +20
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +453
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +371
Run Code Online (Sandbox Code Playgroud)
我把我的视图模型煮到了这个(它会在任何时候出现[Required]属性,在没有的情况下工作正常):
[Required(ErrorMessage = "")]
[DataType(DataType.Text)]
[DisplayName("Property Name")]
public string MyProperty { get; set; }
Run Code Online (Sandbox Code Playgroud)
我的控制器返回一个空的ViewModel,视图中的表单完全空白...只是一个提交按钮.
小智 22
在我的情况下,我写了ErrorMessage = null,例如:
[EmailAddress(ErrorMessageResourceName = "FORM_FIELD_VALIDATION_EMAIL", ErrorMessageResourceType = typeof(App_GlobalResources.Common.View_Common_Forms), ErrorMessage = null)]
Run Code Online (Sandbox Code Playgroud)
ErrorMessage = " " 不工作.
Rya*_*ill 19
问题在于将ErrorMessage设置为空字符串.我不得不假设在某些时候检查MVC代码中的String.Empty会导致问题.
将ErrorMessage设置为""(一个空格)解决了这个问题.
| 归档时间: |
|
| 查看次数: |
11331 次 |
| 最近记录: |