加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP.NET MVC从预览5升级到Beta版期间的问题?

发布时间:2020-12-15 19:31:47 所属栏目:asp.Net 来源:网络整理
导读:当您从ASP.NET MVC Preview 5升级到新发布的 Beta版本时,您需要执行哪些问题或重构? 解决方法 我要自己这样做以下是自述文件中的更改列表: CodePlex Preview 5和Beta之间的变化 将默认验证消息更改为更加终端用户友好. 将CompositeViewEngine重命名为AutoV
当您从ASP.NET MVC Preview 5升级到新发布的 Beta版本时,您需要执行哪些问题或重构?

解决方法

我要自己这样做以下是自述文件中的更改列表:

CodePlex Preview 5和Beta之间的变化

>将默认验证消息更改为更加终端用户友好.
>将CompositeViewEngine重命名为AutoViewEngine.
>向UrlHelper类型的Controller添加一个Url属性.这样可以方便地从控制器内部生成基于路由的URL.
添加ActionNameSelectorAttribute抽象基类,作为ActionNameAttribute的基本类型.通过从这个基本属性类继承,您可以通过名称创建参与动作选择的自定义属性.
>向IViewEngine添加了一个新的ReleaseView方法,允许在视图完成渲染时通知自定义视图引擎.这对于清理或视图池方案很有用.
>将ControllerBuilder方法的DisposeController重命名为ReleaseController以适应为视图引擎创建的模式.
>删除了HtmlHelper类中的大部分方法,将它们转换为HtmlHelper类的扩展方法.这些方法存在于新的命名空间(System.Web.Mvc.Html)中.如果要从预览5迁移,则必须将以下元素添加到Web.config文件的命名空间部分:
< add namespace =“System.Web.Mvc.Html”/>
这样可以使您自己完全替换我们的帮助方法.
>更改默认模型binder(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属性给出与当前请求匹配的方法的优先级.在此示例中,第一种方法将处理“编辑”操作的任何非POST请求.

>为接受格式字符串的ViewDataDictionary.Eval方法添加了一个重载.>从ViewContext类中删除ViewName属性.>为值提供程序添加了一个IValueProvider接口,以及默认实现DefaultValueProvider.值提供者提供模型绑定器绑定到模型对象时使用的值. Controller类的UpdateModel方法已更新,允许您指定自定义值提供程序.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读