从asp.net mvc1.0->2.0-s#arp框架
-
14-09-2020 - |
题
我有一个年长的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不可行性。