1

我一直在阅读本教程,它看起来非常好。所以我浏览了它并下载了示例文件。

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

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

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

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

我什至还没有在我的测试中使用远程验证部分。我只使用来自 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: 
4

2 回答 2

0

您是否仔细阅读了错误?好像找不到文件。我很惊讶它甚至可以编译,但我对文件引用知之甚少。此错误出现在您的测试盒上,而不是在您将其发布到另一台机器之后?

我将从您的参考文献中删除它并重新添加它开始。

显然,DataAnnotations 需要 .NET 3.5SP1,但如果您甚至是最新的,您应该拥有它。

于 2009-08-08T15:39:21.523 回答
0

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

于 2009-09-15T15:52:21.860 回答