當你提交的表單內容中包含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));
原文來源地址:武漢北大青鳥