北大青鸟IT教育博客

 

C#.NET MVC RC 的变化

当你提交的表单内容中包含HTML标签的时候,会得到下面的错误:

 

在ASP.NET MVC的RC版中,你不可以通过在 Page 指令或 配置节中设置 validateRequest=false 可以禁用请求验证。因为在ASP.NET MVC RC版的框架中默认添加这个检测,如果你要去掉这个验证,你需要添加[ValidateInput(false)] 特性到指定的Action或者Controller中,例如下面的代码:

[ValidateInput(false)]
[HandleError]
public class AdminController :
BaseController IValueProvider

RC版中取消了IValueProvider这个接口(真搞不懂为啥取消了),我们原来Beta版的使用到了IValueProvider这个接口的代码可以按下面的方式修改:

public static IDictionary<string, ValueProviderResult> GetValueProvider(ControllerContext cContext) { context = cContext; //注意这里用的是Controller.ValueProvider,以使用系统的默认的form提交过来的值 IDictionary<string, ValueProviderResult> dic = context.Controller.ValueProvider; dic["Tags"] = GetTagsValue(); dic["Categories"] = GetCategoriesValue(); return dic; }  

在Controller中这样调用:

UpdateModel(post, new[] { "Title", "Content", "Slug", "Tags", "Categories" }, PostValueProvider.GetValueProvider(ControllerContext));
原文来源地址:武汉北大青鸟 

posted on 2009-04-03 14:35 武汉北大青鸟 阅读(70) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

常用链接

留言簿

随笔分类

随笔档案

文章档案

默认

搜索

最新评论

阅读排行榜

评论排行榜