gpt4 book ai didi

c# - EditorFor 和 StringLength DataAnnotations

转载 作者:太空狗 更新时间:2023-10-30 00:00:23 24 4
gpt4 key购买 nike

我的模型有以下属性

        [Display(Name = "MyProperty")]
[StringLength(10)]
public string MyProperty
{
get;set;
}

和下面的EditorFor模板

<%@ Page Language="C#" MasterPageFile="Template.Master" Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="Content1" ContentPlaceHolderID="Data" runat="server">
<%= Html.TextBox("", Model)%>
</asp:Content>

我遇到的问题是 StringLength 属性(可以理解)未设置为限制文本框大小。我的答案是我应该如何获取要在我的模板中设置的属性?

谢谢

最佳答案

如果您使用的是 ASP.NET MVC 3 或更高版本,则已接受的答案无效。您需要更改用于获取值的键:

IEnumerable<ModelValidator> validators = ModelValidatorProviders.Providers
.GetValidators(ViewData.ModelMetadata, ViewContext);

ModelClientValidationRule rule = validators.SelectMany(v =>
v.GetClientValidationRules()
).FirstOrDefault(m => m.ValidationType == "length");

if (rule != null && rule.ValidationParameters.ContainsKey("max")) {
var maxLength = rule.ValidationParameters["max"];
}

关于c# - EditorFor 和 StringLength DataAnnotations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7076953/

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