相关疑难解决方法(0)

手动调用ModelState验证

我正在使用ASP.NET MVC 3代码优先,我已经将验证数据注释添加到我的模型中.这是一个示例模型:

public class Product
{
    public int ProductId { get; set; }

    [Required(ErrorMessage = "Please enter a name")]
    public string Name { get; set; }

    [Required(ErrorMessage = "Please enter a description")]
    [DataType(DataType.MultilineText)]
    public string Description { get; set; }

    [Required(ErrorMessage = "Please provide a logo")]
    public string Logo { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在我的网站中,我有一个创建新产品的多步骤过程 - 第1步输入产品详细信息,第2步其他信息等.在每个步骤之间我将每个对象(即Product对象)存储在Session中,因此用户可以返回到该过程的那个阶段并修改他们输入的数据.

在每个屏幕上,我都有客户端验证,使用新的jQuery验证.

最后阶段是确认屏幕,之后将在数据库中创建产品.但是,因为用户可以在各个阶段之间跳转,所以我需要验证对象(产品和其他一些对象)以检查它们是否已正确完成数据.

有没有办法以编程方式在具有数据注释的对象上调用ModelState验证?我不想浏览对象上的每个属性并进行手动验证.

如果能够更轻松地使用ASP.NET MVC 3的模型验证功能,我愿意接受如何改进此过程的建议.

.net c# asp.net-mvc asp.net-mvc-validation asp.net-mvc-3

57
推荐指数
2
解决办法
4万
查看次数

ASP.Net MVC 2 Controller的TryValidate不验证模型中的List <>项

如何获得模型验证以验证通用列表属性中的子对象.

我有一个模型,我正在尝试验证,这不是发布到服务器的内容,而是发布的一些信息的组合,以及服务器上已有的信息......例如.

 ...
public class A {
   [Required]
   public string Property1 { get; set; }
}
...
public class B {
   public List<A> Values { get; set; }
}
...
    if (!TryValidateModel(instanceofB))
    {
        //this should fire, as one of A inside B isn't valid.
        return View(instanceofB);
    }
Run Code Online (Sandbox Code Playgroud)

当我尝试验证B的模型实例时,它不会验证Values集合的验证属性.

c# asp.net-mvc-2-validation asp.net-mvc-2

3
推荐指数
1
解决办法
3032
查看次数