Asp.net mvc 3 如何在MVC3中关闭请求验证?
我已经安装了MVC 3的RC1版本,并且正在为我的模型使用Entity Framework 4 注意:我在MVC2中工作得很好,但MVC3改变了它的工作方式 我已经阅读了以下文章,并能够获得下面的代码Asp.net mvc 3 如何在MVC3中关闭请求验证?,asp.net-mvc-3,requestvalidationmode,Asp.net Mvc 3,Requestvalidationmode,我已经安装了MVC 3的RC1版本,并且正在为我的模型使用Entity Framework 4 注意:我在MVC2中工作得很好,但MVC3改变了它的工作方式 我已经阅读了以下文章,并能够获得下面的代码 这是我的EF4元数据模型 [MetadataType(typeof(ArticleMetaData))] partial class Article { } public class ArticleMetaData { [SkipRequestValidation()]
[MetadataType(typeof(ArticleMetaData))]
partial class Article
{
}
public class ArticleMetaData
{
[SkipRequestValidation()]
public string Body { get; set; }
}
这是我的控制器动作的简化版本
[HttpPost]
[Authorize(Roles = "Admin")]
[ValidateInput(false)]
public ActionResult Edit(string id, FormCollection values)
{
Article article;
article = GetArticle(id);
UpdateModel(article);
if (ModelState.IsValid)
{
Repository.SaveChanges();
return RedirectToAction("Article", new { id = article.Slug });
}
return View(article);
}
我做错了什么?是否有更好的模式供我遵循?尝试删除
[ValidateInput(false)]
并将FormCollection
更改为文章
这样很好…很有效,谢谢。请注意,我并没有从表单中传递对象的所有值。对于其他处于类似情况的人,我对原始代码所做的唯一更改是将Article作为唯一的参数。我仍然在从数据库加载文章,并在上面调用UpdateModel。