Eli*_*nor 9 asp.net-mvc refactoring
从ASP.NET MVC Preview 5升级到新发布的Beta版本时,您需要做什么问题或重构?
小智 11
第一个问题:死亡的黄色屏幕.
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中.
小智 6
我自己即将这样做.以下是自述文件的更改列表:
<add namespace="System.Web.Mvc.Html"/>
这使您可以用自己的方法完全替换我们的帮助程序方法.添加了一个新的HttpVerbs枚举,其中包含最常用的HTTP谓词(GET,POST,PUT,DELETE,HEAD).还为接受枚举的AcceptVerbsAttribute添加了构造函数重载.枚举值可以组合.因为可以响应枚举中未包含的HTTP谓词,所以AcceptVerbsAttribute保留接受字符串数组作为参数的构造函数.例如,以下代码段显示了一个可以响应POST和PUT请求的操作方法.
[AcceptVerbs(HttpVerbs.Post | HttpVerbs.Put)]
public ActionResult Update() {...
}
Run Code Online (Sandbox Code Playgroud)修改了RadioButton辅助方法,以确保每个重载都接受一个值.由于单选按钮用于指定一组可能值的选项,因此需要指定单选按钮的值.
更改了操作方法选择.如果两个操作方法与请求匹配,但只有一个具有从与请求匹配的ActionMethodSelectorAttribute派生的属性,则会调用该操作.在早期版本中,此方案导致异常.例如,以下两个操作方法位于同一个控制器中:
public ActionResult Edit() {
//...
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(FormCollection form) {
//...
}
Run Code Online (Sandbox Code Playgroud)在预览5中,对"编辑"操作的POST请求将导致异常,因为两个方法与请求匹配.在Beta中,优先级是通过AcceptVerb属性匹配当前请求的方法.在此示例中,第一个方法将处理Edit操作的任何非POST请求.
我遇到了与Will相同的问题,不得不做与他类似的事情,包括将dll复制到bin文件夹.
现在事情在内部vs.net服务器上工作,但导致IIS7崩溃.
好吧,原来其中一个主要问题是我错过了更新web.config中编译程序集的步骤:
<add assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7153 次 |
| 最近记录: |