gpt4 book ai didi

asp.net-mvc-3 - 数据注释在 View 模型中不起作用

转载 作者:行者123 更新时间:2023-12-04 22:15:18 24 4
gpt4 key购买 nike

我有几个不同的模型,它们的属性用数据注释进行了修饰以进行验证。

public class BillingModel
{
[Required,
DisplayName("First Name")]
public string FirstName { get; set; }

[Required,
DisplayName("Last Name")]
public string LastName { get; set; }
}

public class CustomerModel
{
[Required,
DisplayName("Address")]
public string Adress { get; set; }

[Required,
DisplayName("City")]
public string City { get; set; }
}

当我将它们放在这样的 View 模型中时:
public class OrderViewModel
{
public BillingModel Billing { get; set; }
public CustomerModel Customer { get; set; }
}

它们呈现如下:
<input id="Business_FirstName" name="Business.FirstName" type="text" value="" />

<input id="Business_LastName" name="Business.LastName" type="text" value="" />

我的 Razor 看起来像这样:
@Html.TextBoxFor(x => x.Business.FirstName)
@Html.TextBoxFor(x => x.Business.LastName)

我有许多属性需要存在于它们自己的类中,因为每个类都包含特定的方法。即使我放 [Required]在 View 模型中的每个属性上它仍然不起作用。

最佳答案

您还需要输入以下 <script /> View 中的元素(如果您将在所有 View 中使用客户端验证,最好是 _layout.cshtml View ):

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

相应地修改路径。但这应该让您的验证启动并运行。

另外,使用 ValidationMessageFor()在你看来。像这样:
@Html.TextBoxFor(x => x.Business.FirstName)
@Html.ValidationMessageFor(x => x.Business.FirstName)

@Html.TextBoxFor(x => x.Business.LastName)
@Html.ValidationMessageFor(x => x.Business.LastName)

关于asp.net-mvc-3 - 数据注释在 View 模型中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8763220/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com