我不确定我在Xval和远程验证方面做错了什么

时间:2009-08-08 00:42:58

标签: asp.net-mvc xval

我一直在经历这个tutorial,它看起来非常好。所以我浏览了它并下载了示例文件。

我一直在玩它并且我理解如何使用它并且能够添加我自己的验证它。

所以我决定将它添加到我正在处理的当前项目中。当我尝试我的表单没有验证(客户端和服务器端)时,我能够编译并运行它。

我不知道为什么。所以我做了另一个项目,并试图再次添加所有的东西,但我不知道我错过了什么不起作用。

这是我向他们展示太多文件以复制和粘贴代码的唯一真实方式。

我甚至没有使用远程验证部分进行测试。我只使用来自xval的直接内容,就像我所拥有的那样是“必需的电子邮件”。

立即编辑我收到错误

System.IO.FileNotFoundException was unhandled by user code
  Message="Could not load file or assembly 'System.ComponentModel.DataAnnotations, Version=99.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified."
  Source="Online.com"
  FileName="System.ComponentModel.DataAnnotations, Version=99.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
  FusionLog="=== Pre-bind state information ===\r\nLOG: User = CHOBO2\\chobo\r\nLOG: DisplayName = System.ComponentModel.DataAnnotations, Version=99.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\n (Fully-specified)\r\nLOG: Appbase = file:///I:/OnlineV2/trunk/Current Site/\r\nLOG: Initial PrivatePath = I:\\OnlineV2\\trunk\\Current Site\\bin\r\nCalling assembly : Online.com, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.\r\n===\r\nLOG: This bind starts in default load context.\r\nLOG: Using application configuration file: I:\\OnlineV2\\trunk\\Current Site\\web.config\r\nLOG: Using machine configuration file from C:\\WINDOWS\\Microsoft.NET\\Framework\\v2.0.50727\\config\\machine.config.\r\nLOG: Post-policy reference: System.ComponentModel.DataAnnotations, Version=99.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\r\nLOG: The same bind was seen before, and was failed with hr = 0x80070002.\r\n"
  StackTrace:
       at Microsoft.Web.Mvc.DataAnnotations.DataAnnotationsModelBinder.GetTypeDescriptor(Object model, Type modelType)
       at Microsoft.Web.Mvc.DataAnnotations.DataAnnotationsModelBinder.GetModelProperties(ControllerContext controllerContext, ModelBindingContext bindingContext) in I:\OnlineV2\trunk\Current Site\Models\DataAnnotationsModelBinder\DataAnnotationsModelBinder.cs:line 35
       at System.Web.Mvc.DefaultModelBinder.BindProperties(ControllerContext controllerContext, ModelBindingContext bindingContext)
       at System.Web.Mvc.DefaultModelBinder.BindComplexElementalModel(ControllerContext controllerContext, ModelBindingContext bindingContext, Object model)
       at System.Web.Mvc.DefaultModelBinder.BindComplexModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
       at System.Web.Mvc.DefaultModelBinder.BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
       at System.Web.Mvc.ControllerActionInvoker.GetParameterValue(ControllerContext controllerContext, ParameterDescriptor parameterDescriptor)
       at System.Web.Mvc.ControllerActionInvoker.GetParameterValues(ControllerContext controllerContext, ActionDescriptor actionDescriptor)
       at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)
  InnerException: 

2 个答案:

答案 0 :(得分:0)

您是否仔细阅读过该错误?看起来无法找到文件。我很惊讶它甚至可以编译,但我对文件引用知之甚少。此错误在您的测试框上,而不是在您将其发布到另一台计算机后?

我首先从您的引用中删除它并重新添加它。

显然DataAnnotations需要.NET 3.5SP1,但是如果你的数据很少,那么你应该拥有它。

答案 1 :(得分:0)

我有类似的问题。我在项目中下载了Data Annotations Model Binder Sample,构建并引用了新程序集。工作就像一个魅力。