请问你能帮帮我吗。
我有一堂课:
public class Product
{
...
// NOT REQUIRED!
public virtual Category Category{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
但是当我在视图中创建
@Html.HiddenFor(model => model.Category.Id), or
@Html.Hidden("model.Category.Id", model => model.Category.Id)
Run Code Online (Sandbox Code Playgroud)
razor 为此添加了验证属性。
我发现这不是一个剃刀问题,它在 MVC 中的某个地方。即使我设法将 "Category.Id" value = "" 传递给服务器,TryModelUpdate() 也会失败 - 它需要设置 "Category.Id",但在我的模型中不需要。
为什么会这样??!
设置隐藏,例如:
@Html.Hidden("CategoryIdHidden", model => model.Category.Id)
Run Code Online (Sandbox Code Playgroud)
并将发布的隐藏值与模型绑定内容分开处理...我认为验证是特定于 UI 的,而不是特定于模型的,因此它不会验证类别 ID。
或者,在隐藏中提供默认值“0”。如果category.ID 的类型为int,则“”值可能无法正确计算,因此它为空,因此会出错。
HTH。
| 归档时间: |
|
| 查看次数: |
4205 次 |
| 最近记录: |