我有一个年长的asp.net mvc解决方案(s#arp框架)whith两个项目一个用于web,一个用于控制器。我已经将dll更改为系统的最新版本(2.0)。网络。MVC和微软。网络。MVC的。我也调整了我的网络。配置;配置:

<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

这(理论上)是我所要做的吗?

解决方案构建良好,但我得到这个错误:

尝试将元素作为与数组不兼容的类型访问。资料描述:在执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中起源的更多信息。

异常详情:系统。ArrayTypeMismatchException:尝试将元素作为与数组不兼容的类型访问。

源错误:

第32行:第33行:视图引擎。引擎。清楚();第34行:视图引擎。引擎。添加(新AreaViewEngine());第35行:第36行:模型绑定器。粘合剂。DefaultBinder=新的SharpModelBinder();

这可能与mvc交换机无关,但与s#arp框架有关。有什么想法吗?谢谢.

祝福你,

基督教

有帮助吗?

解决方案

此问题与S#arp架构有关。您需要在此处获取S#arp的MVC2版本: http://github.com/codai/Sharp-Architecture/downloads.列表中的第一项是您想要的,包括VS2010模板。(注意描述中的错字,上面写着ASP.NET 2、应ASP.NET MVC2)

希望有帮助。

附:如果您对异常本身的原因感到好奇,请查看这篇简短的文章: http://dotnetperls.com/arraytypemismatchexception.我怀疑(不看S#arp1和MVC2源),该 SharpModelBinder (MVC1版本)现在与MVC的MVC2实现不兼容 DefaultBinder, ,而这并不在编译时被捕获,因为 SharpModelBinder 继承自 DefaultBinder 编译器认为一切都很好。只有在运行时才能检测到acual不可行性。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top