2011-07-28 49 views
4

请帮我。剃刀:@ Html.HiddenFor()需要关闭验证

我有一个类:

public class Product 
{ 
    ... 

    // NOT REQUIRED! 
    public virtual Category Category{ get; set; } 
} 

但是,当在一个视图中创建

@Html.HiddenFor(model => model.Category.Id), or 
@Html.Hidden("model.Category.Id", model => model.Category.Id) 

剃刀增加验证属性这一点。

  1. 如何关闭它? (在模型中,在视图中)
  2. 如果一个属性具有属性[必需],如何关闭验证事件?

我发现这不是一个剃须刀问题,它是在MVC的某个地方。 即使我设法将“Category.Id”value =“”传递给服务器,TryModelUpdate()将失败 - 它需要设置“Category.Id”,但在我的模型中不需要。

为什么如此?

回答

0

设置隐藏,如:

@Html.Hidden("CategoryIdHidden", model => model.Category.Id) 

和处理贴出隐藏值从模型中分离结合的东西...我认为验证是特定的用户界面,而不是具体产品型号,所以它不会验证类别ID。

或者,在隐藏中提供默认值“0”。如果category.ID的类型为int,那么值“”“可能不会正确计算,因此它的值为null,因此它是错误的。

HTH。