【问题标题】:who does the validation in basic asp.net mvc + entity framework program谁在基本的 asp.net mvc + 实体框架程序中进行验证
【发布时间】:2010-01-06 07:25:12
【问题描述】:

我有一个非常简单的 ASP.NET MVC 应用程序,它具有基于实体框架的模型。本质上,只是 AdventureWorks 数据库中的 Product 表。控制器只有 Index 和 CrUD 方法。

创建有以下内容:

        if (!ModelState.IsValid) {
            return View();
        }
        // Save to the database

数据库中的某些字段是必需的,如果未输入值,则会出现错误(ModelState.IsValid == false)。但是,我想提供一些默认值而不是出错。但我不知道如何挂钩模型验证......我玩过“伙伴元数据”类;所以我知道如何通过注解改变错误信息;但不是如何“结伴”验证过程。

如果它更清楚,我想将 ModifiedDate 设置为 DateTime.Now,并将 rowguid 设置为 Guid.NewGuid()。不用说,真正的问题是在一个大型应用程序中,但这个例子似乎完美地总结了我要解决的问题。

我可能通过在 ModelState 中导航在控制器中执行此操作,但必须有更好的方法。

这可能是一个非常简单的问题...但我找不到任何示例。

【问题讨论】:

  • 您使用的是哪个版本的 ASP.NET MVC - 1 或 ASP.NET MVC 2 RC?

标签: asp.net-mvc entity-framework validation


【解决方案1】:

您可能需要的是从绑定中排除某些字段。示例代码:

[HttpPost]
public ActionResult Create([Bind(Exclude = "rowGuid,ModifiedDate")]Task task)
{
    if (ModelState.IsValid)

如果从绑定中排除,则从验证中排除。您可以自行设置而不会出现模型错误。

【讨论】:

  • 唉,这是我尝试的第一件事......无论我是否创建排除列表,ModelState 仍然带有 IsValid == false 并且所有条目(包括 rowGuid 和 ModifiedDate)都是一部分错误字典
猜你喜欢
  • 1970-01-01
  • 2012-10-15
  • 2012-05-30
  • 2010-11-11
  • 2011-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-22
相关资源
最近更新 更多