2010-11-12 60 views
2

我已经安装了RC1版本MVC 3,我正在为我的模型使用实体框架4。如何关闭MVC3中的请求验证?

注意:我在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); 
} 

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

回答

3

尝试删除[ValidateInput(false)]并将FormCollection更改为Article

这里工作正常...

+0

工作,谢谢。作为一个说明,我没有通过表单中的对象的所有值。对于处于类似情况的其他人,我从原始代码中改变的唯一东西是我将Article作为唯一参数。我仍然从数据库中加载文章并在其上调用UpdateModel。 – Brian 2010-11-12 00:50:37