我使用MVC 3和EF 4.3.1。
我使用POCO创建了我的类,我正在使用元数据在我的属性上添加DataAnnotations。
我正在使用Scaffolding EF生成控件和视图。
我的问题:
测试网站OptionId(是一个PK IDENTITY)显示为TextField。我需要隐藏此属性并确保自动创建值。
[StringLength(256)]不起作用且在View中没有ClientValidation
我在这里做错了什么?
感谢您对此的帮助
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
namespace MyProject.Models
{
[MetadataType(typeof(ReOptionMetaData))]
public partial class ReOption
{
private class ReOptionMetaData
{
[Key]
public int OptionId { get; set; }
[Required]
[StringLength(64)]
public string Name { get; set; }
public string Value { get; set; }
[Required]
[StringLength(256)]
public string Description { get; set; }
[StringLength(256)]
public string NoteInternal { get; set; }
}
}
}
答案 0 :(得分:2)
测试网站OptionId(是一个PK IDENTITY)显示为 文本域。我需要隐藏此属性并确保创建该值 自动。
在元数据中,您可以使用HiuddenInput
属性生成隐藏输入而不是文本字段:
[Key]
[HiddenInput(DisplayValue = false)]
public int OptionId { get; set; }
[StringLength(256)]不起作用,并且在View中没有ClientValidation
确保您已将jquery.validate.js
和jquery.validate.unobtrusive.js
脚本包含在您的网页中。
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
并且您已在web.config中启用了不显眼的客户端脚本验证:
<appSettings>
<add key="ClientValidationEnabled" value="true"/>
...
</appSettings>
答案 1 :(得分:1)
您可以使用ScaffoldColumnAttribute不支持OptionId列。