asp.net-mvc-3 - 如何在 MVC3 中关闭请求验证?

标签 asp.net-mvc-3 requestvalidationmode

我已经安装了 MVC 3 的 RC1 版本,并且正在为我的模型使用 Entity Framework 4。

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

我已阅读以下文章并能够获取下面的代码...

这是我的 EF4 元数据模型...

[MetadataType(typeof(ArticleMetaData))]
partial class Article
{
}

public class ArticleMetaData
{
    [SkipRequestValidation()]
    public string Body { get; set; }
}

这是我的 Controller 操作的简化版本...

[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

这样就可以正常工作了...

关于asp.net-mvc-3 - 如何在 MVC3 中关闭请求验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4160538/

相关文章:

asp.net-mvc-3 - windows azure ASP.NET MVC 3 上的成员身份验证 - 找不到列

asp.net-mvc - 在App_Code中的共享@helper中使用@Html

c# - ASP.NET MVC 处理区域中的请求验证异常

asp.net - 无法在框架 3.5 中使用 requestvalidationmode

asp.net - <httpRuntime requestValidationMode ="2.0"/>不起作用(使用IIS 6.0)

asp.net-mvc-3 - 我应该从 NuGet 安装哪个 Ninject 版本?

asp.net-mvc - 在 VS2010 中使用端口 80 和 IIS Express

javascript - ASP.NET MVC 3 Razor : Include JavaScript file in the head tag