代码之家  ›  专栏  ›  技术社区  ›  skolima

如何关闭MVC3中的请求验证?

  •  2
  • skolima  · 技术社区  · 14 年前

    我已经安装了RC1版本 MVC 3 我正在为我的模型使用实体框架4。

    注意:我在MVC2中的工作很好,但是MVC3改变了这种工作方式。

    我已经阅读了以下文章,并且能够找到下面的代码…

    这是我的EF4元数据模型…

    [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);
    }
    

    我做错什么了?有没有更好的模式让我跟随?

    1 回复  |  直到 14 年前
        1
  •  3
  •   Zote    14 年前

    尝试删除 [ValidateInput(false)] 和改变 FormCollection Article .

    这样做很好…

    推荐文章