Bil*_*ill 6 jquery asp.net-mvc-3
我有一个模型类"Country",其属性"CultureId"未标记为必需.另一个类"CountryViewModel"拥有相同的属性"CultureId".
渲染"创建"视图时,我注意到验证数据属性已添加到"CultureId"文本框中,尽管没有添加数据注释.
我在用
@Html.HiddenFor(mode => mode.CultureId)
Run Code Online (Sandbox Code Playgroud)
这种行为可能是什么原因?
谢谢
Dan*_*Dan 12
我猜你的CultureId是一个int.MVC自动将所需标记添加到不可为空的值类型.
要关闭它添加
DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;
Run Code Online (Sandbox Code Playgroud)
到Application_Start或使你的int可以为空
有几种方法可以解决这个问题 -
a).使属性像Nullable一样
public int? Age { get; set; }
Run Code Online (Sandbox Code Playgroud)
B).在控制器类中使用以下 -
ModelState["Age"].Errors.Clear();
Run Code Online (Sandbox Code Playgroud)
C).添加到启动 - DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;
如果您可以使用数据注释,您应该查看此http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.metadatatypeattribute.aspx
namespace MvcApplication1.Models
{
[MetadataType(typeof(MovieMetaData))]
public partial class Movie
{
}
public class MovieMetaData
{
[Required]
public object Title { get; set; }
[Required]
[StringLength(5)]
public object Director { get; set; }
[DisplayName("Date Released")]
[Required]
public object DateReleased { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
}
它可以帮助您在数据库端设置没有模型的验证。
| 归档时间: |
|
| 查看次数: |
6392 次 |
| 最近记录: |