当前位置:  开发笔记 > 后端 > 正文

ASP.NET MVC从Preview 5升级到Beta期间的问题?

如何解决《ASP.NETMVC从Preview5升级到Beta期间的问题?》经验,为你挑选了3个好方法。

从ASP.NET MVC Preview 5升级到新发布的Beta版本时,您需要做什么问题或重构?



1> 小智..:

第一个问题:死亡的黄色屏幕.
CS0234: The type or namespace name 'Mvc' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)

解决方案:我删除了项目中的所有引用并重新添加它们,指向程序文件\ asp.net\asp.net mvc beta\assemblies中的程序集,但这并没有解决问题.

我在gac中有一个system.web.mvc dll(不知道怎么做).试图删除它.无法; 一个或多个应用程序需要组装.必须找到这里描述的程序集并删除注册表项.然后我能够删除gac的system.web.mvc版本.

此STILL无法解决问题.我不得不重新添加引用AGAIN.现在它的工作.


只是为了清楚!!! beta程序集被删除在Program Files下,而旧版本的System.Web.Mvc则在GAC中.




2> 小智..:

我自己即将这样做.以下是自述文件的更改列表:

CodePlex Preview 5和Beta之间的变更

将默认验证消息更改为更加最终用户友好.

将CompositeViewEngine重命名为AutoViewEngine.

向UrlHelper类型的Controller添加了Url属性.这样可以方便地从控制器中生成基于路由的URL.

添加了ActionNameSelectorAttribute抽象基类,该基类用作ActionNameAttribute的基类型.通过继承此基本属性类,您可以创建参与按名称选择操作的自定义属性.

为IViewEngine添加了一个新的ReleaseView方法,允许在视图完成呈现时通知自定义视图引擎.这对于清理或视图池方案很有用.

将ControllerBuilder方法DisposeController重命名为ReleaseController,以适应为视图引擎建立的模式.

删除了HtmlHelper类上的大多数方法,将它们转换为HtmlHelper类的扩展方法.这些方法存在于新的命名空间(System.Web.Mvc.Html)中.如果要从Preview 5迁移,则必须将以下元素添加到Web.config文件的名称空间部分: 这使您可以用自己的方法完全替换我们的帮助程序方法.

更改了默认模型绑定器(DefaultModelBinder)以处理复杂类型.IModelBinder接口也已更改为接受ModelBindingContext类型的单个参数.

添加了一个新的HttpVerbs枚举,其中包含最常用的HTTP谓词(GET,POST,PUT,DELETE,HEAD).还为接受枚举的AcceptVerbsAttribute添加了构造函数重载.枚举值可以组合.因为可以响应枚举中未包含的HTTP谓词,所以AcceptVerbsAttribute保留接受字符串数组作为参数的构造函数.例如,以下代码段显示了一个可以响应POST和PUT请求的操作方法.

[AcceptVerbs(HttpVerbs.Post | HttpVerbs.Put)]  
public ActionResult Update() {...
}

修改了RadioButton辅助方法,以确保每个重载都接受一个值.由于单选按钮用于指定一组可能值的选项,因此需要指定单选按钮的值.

对默认项目模板进行了修改和修复.这包括将脚本文件移动到新的Scripts文件夹.默认模板使用ModelState类来报告验证错误.

更改了操作方法选择.如果两个操作方法与请求匹配,但只有一个具有从与请求匹配的ActionMethodSelectorAttribute派生的属性,则会调用该操作.在早期版本中,此方案导致异常.例如,以下两个操作方法位于同一个控制器中:

public ActionResult Edit() {  
  //...  
}  

[AcceptVerbs(HttpVerbs.Post)]  
public ActionResult Edit(FormCollection form) {  
  //...
}

在预览5中,对"编辑"操作的POST请求将导致异常,因为两个方法与请求匹配.在Beta中,优先级是通过AcceptVerb属性匹配当前请求的方法.在此示例中,第一个方法将处理Edit操作的任何非POST请求.

为ViewDataDictionary.Eval方法添加了一个重载,该方法接受格式字符串.

从ViewContext类中删除了ViewName属性.

为值提供程序添加了IValueProvider接口,以及默认实现DefaultValueProvider.值提供程序提供绑定到模型对象时模型绑定程序使用的值.已更新Controller类的UpdateModel方法,以允许您指定自定义值提供程序.



3> JarrettV..:

我遇到了与Will相同的问题,不得不做与他类似的事情,包括将dll复制到bin文件夹.

现在事情在内部vs.net服务器上工作,但导致IIS7崩溃.

好吧,原来其中一个主要问题是我错过了更新web.config中编译程序集的步骤:


推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有