当 Textboxfor 具有自定义名称时,ValidationMessageFor 不起作用
ValidationMessageFor not working when Textboxfor has custom name
我发现在我将 @Name 属性添加到 TextBoxFor 后我的 ValidationMessageFor 停止工作。这是有道理的,但我如何让 ValidationMessageFor 使用自定义名称属性。我需要维护自定义名称属性。
<div class="input-group margin-bottom-small">
<span class="input-group-addon"><i class="fa fa-external-link-square fa-fw"></i>
</span>
@Html.TextBoxFor(model => model.SelectedContact.WebSiteInfoes[0].VanityURL, new { @class = "form-control", @placeholder = "Enter Vanity URL", @Name="VanityUrl" })
</div>
@Html.ValidationMessageFor(model => model.SelectedContact.WebSiteInfoes[0].VanityURL)
查看相关内容post
所以我做了一些更改并返回到修改后的 jquery.validate.js 问题是第二个值从未进入验证方法。
模型字段
[DisplayName("Vanity URL")]
[Remote("IsVanityURL_Available", "Validation", AdditionalFields = "ContactId")]
[RegularExpression(@"(\S)+", ErrorMessage = "White space is not allowed.")]
[Editable(true)]
public string VanityURL { get; set; }
请求的 Fiddler 陷阱
方法中的参数
您可以将其附加到 @class
:
@Html.TextBoxFor(
model => model.SelectedContact.WebSiteInfoes[0].VanityURL,
new { @class = "form-control VanityURL", placeholder = "Enter Vanity URL" })
var vanityUrl = $('.VanityURL').first();
那天晚上我脑子放了一个屁,质疑我为什么不使用局部视图来绕过复杂对象问题。我刚刚有机会回到该项目并对其进行测试,它可以完美运行,无需对 jquery.validate.js 或 jquery.validate.unobtrusive.js 进行任何更改。虽然它可能无法解决所有实现的这个问题,但它确实解决了我的问题。
您必须使用相应的 HTML 控制器 name
.[=13] 的值更新 ValidationMessageFor 助手的 data-valmsg-for
属性=]
@Html.ValidationMessageFor(model => model.SelectedContact.WebSiteInfoes[0].VanityURL,
null, new { data_valmsg_for = "VanityUrl" })
我发现在我将 @Name 属性添加到 TextBoxFor 后我的 ValidationMessageFor 停止工作。这是有道理的,但我如何让 ValidationMessageFor 使用自定义名称属性。我需要维护自定义名称属性。
<div class="input-group margin-bottom-small">
<span class="input-group-addon"><i class="fa fa-external-link-square fa-fw"></i>
</span>
@Html.TextBoxFor(model => model.SelectedContact.WebSiteInfoes[0].VanityURL, new { @class = "form-control", @placeholder = "Enter Vanity URL", @Name="VanityUrl" })
</div>
@Html.ValidationMessageFor(model => model.SelectedContact.WebSiteInfoes[0].VanityURL)
查看相关内容post
所以我做了一些更改并返回到修改后的 jquery.validate.js 问题是第二个值从未进入验证方法。
模型字段
[DisplayName("Vanity URL")]
[Remote("IsVanityURL_Available", "Validation", AdditionalFields = "ContactId")]
[RegularExpression(@"(\S)+", ErrorMessage = "White space is not allowed.")]
[Editable(true)]
public string VanityURL { get; set; }
请求的 Fiddler 陷阱
方法中的参数
您可以将其附加到 @class
:
@Html.TextBoxFor(
model => model.SelectedContact.WebSiteInfoes[0].VanityURL,
new { @class = "form-control VanityURL", placeholder = "Enter Vanity URL" })
var vanityUrl = $('.VanityURL').first();
那天晚上我脑子放了一个屁,质疑我为什么不使用局部视图来绕过复杂对象问题。我刚刚有机会回到该项目并对其进行测试,它可以完美运行,无需对 jquery.validate.js 或 jquery.validate.unobtrusive.js 进行任何更改。虽然它可能无法解决所有实现的这个问题,但它确实解决了我的问题。
您必须使用相应的 HTML 控制器 name
.[=13] 的值更新 ValidationMessageFor 助手的 data-valmsg-for
属性=]
@Html.ValidationMessageFor(model => model.SelectedContact.WebSiteInfoes[0].VanityURL,
null, new { data_valmsg_for = "VanityUrl" })