ASP.NET Core 2.0中Html Helper转Tag Helper的替代方案咨询
没问题,我来帮你把这段Html Helper转换成Tag Helper写法。因为你的视图模型是直接的string类型,不是带InputText属性的复杂对象,所以得稍微调整一下写法,具体如下:
@model string <form asp-action="Encryption" asp-controller="System" method="post" asp-antiforgery="true"> <!-- 替代 @Html.TextBox("InputText", Model, new { @class = "form-control" }) --> <input type="text" name="InputText" class="form-control" value="@Model" asp-validation-for="@Model" /> <!-- 替代 @Html.ValidationMessage("InputText") --> <span class="text-danger" data-valmsg-for="InputText" data-valmsg-replace="true"></span> </form>
关键细节说明:
- 输入框部分:
name="InputText":确保表单提交时,参数能正确映射到Action方法中名为InputText的参数,和原Helper的第一个参数完全对应。value="@Model":把传入的字符串模型值填充到输入框中,对应原Helper的Model参数。asp-validation-for="@Model":自动生成客户端验证所需的data-val-*属性,和原Helper的验证逻辑保持一致。
- 验证消息部分:
data-valmsg-for="InputText":指定该元素显示InputText字段的验证错误,完全对应原Html.ValidationMessage("InputText")的作用。data-valmsg-replace="true":表示用错误消息替换span的默认内容,和原Helper的默认行为一致。class="text-danger":使用Bootstrap样式类,和原Helper生成的错误消息样式匹配。
如果你不需要客户端验证,也可以去掉asp-validation-for和data-val-*相关属性,只保留name和value就能实现基本的表单提交功能。
内容的提问来源于stack exchange,提问作者mnu-nasir
相关产品推荐
相关产品推荐

