ASP.. NET Core不能为局部变量分配span名



我将动态输入添加到我的表单,当我添加时,我动态地为我的输入创建一个名称并设置它。但是,我不能为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检查时,span名称被设置为"data-valmsg-for="NameofContentInput"如何将span名称正确设置为@Model.NameofContentInput"?

asp-validation-for标签帮助器用于模型的属性,而不是用于模式的属性名。这就是为什么asp-validation-for="@Model.NameofContentInput"将呈现为data-valmsg-for="NameofContentInput"而不是data-valmsg-for="test"的原因。

更多细节可以参考ValidationMessageTagHelper的源代码。

它将使用这个方法来生成html,你可以发现它将生成基于属性名而不是值的html。

相关内容

  • 没有找到相关文章