我已经安装了 MVC 3 的 RC1 版本,并且正在为我的模型使用 Entity Framework 4。
注意:我在 MVC2 中工作得很好,但 MVC3 改变了它的工作方式。
我已阅读以下文章并能够获取下面的代码...
- Granular Request Validation in ASP.NET MVC 3
- Announcing the ASP.NET MVC 3 Release Candidate
- Validation with the Data Annotation Validators
这是我的 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/