我在表单中添加动态输入,当我添加时,我动态地为输入创建一个名称并设置它。但是,我不能为span asp-validation-for参数设置相同的值。
@model AnswerViewModel
<fieldset class="row answerrow" style="margin: 20px;" id="@Model.answer.Id">
<div class="form-group">
<input type="hidden" asp-for="@Model.answer.Id" name="@Model.NameofAnswerIdInput" value="@Model.answer.Id" ></input>
<input type="hidden" asp-for="@Model.answer.QuestionId" name="@Model.NameofQuestionIdInput" value="@Model.answer.QuestionId" />
<div id="@Model.answer.Id" class="d-flex form-group">
<input required="true" asp-for="@Model.CorrectAnswerId" name="@Model.NameofCorrectAnswerIdRadio"
type="radio" value="@Model.answer.Id" />
<span asp-validation-for="@Model.NameofCorrectAnswerIdRadio" class="text-danger"></span>
<input id="@Model.answer.Id" required="true" asp-for="@Model.answer.Content"
name="@Model.NameofContentInput" value="@Model.answer.Content" class="form-control ms-2" />
<span asp-validation-for="@Model.NameofContentInput" class="text-danger"></span>
</div>
</div>
</fieldset>
当我通过inspect检查时,范围名称被设置为“data-valmsg-for=“NameofContentInput”。我如何正确地将范围名称设置为“@Model.NameofContentInput”?
1条答案
按热度按时间ut6juiuv1#
asp-validation-for标记助手用于模型的属性,而不是模式的属性名称,这就是
asp-validation-for="@Model.NameofContentInput"
将呈现为data-valmsg-for="NameofContentInput"
而不是data-valmsg-for="test"
的原因。更多详细信息,您可以参考ValidationMessageTagHelper's源代码。
它将使用此方法生成html,您可以发现它将根据属性名称而不是值生成html。