<textarea>与“ asp-for =”一起使用时不显示内部文本

时间:2019-04-27 16:47:30

标签: asp.net-core razor html-helper

这会在文本区域内显示“ Hello there”:

  @model PlannerViewModel
@ {
    ViewData [“ Title”] =“测试”;
    布局=“〜/ Views / Shared / _Layout.cshtml”;
}

测试

    
             

这不会在文本区域内显示“ Hello there”:

  @model PlannerViewModel
@ {
    ViewData [“ Title”] =“测试”;
    布局=“〜/ Views / Shared / _Layout.cshtml”;
}

测试

    
             

如您所见,唯一的区别是“ asp-for”的存在。难道我做错了什么?有什么解决方法吗?

3 个答案:

答案 0 :(得分:1)

要解决此烦人的事件,可以使用;

@ Html.IdFor

@ Html.NameFor

示例;

<textarea id="@Html.IdFor(m => m.EditShutdown.Comments_Operations)" name="@Html.NameFor(m => m.EditShutdown.Comments_Operations)">Hello there</textarea>

答案 1 :(得分:0)

asp-for<textarea>提供name并填充其值,因此您只需将EditShutdown.Comments_Operations的值设置为"Hello there"即可显示。

答案 2 :(得分:0)

根据您的请求,您可以尝试使用placeholder属性,如下所示:

<form method="post">
<div class="border rounded">
    <textarea class="form-control MyTextArea" rows="4" placeholder="Hello there" asp-for="EditShutdown.Comments_Operations"></textarea>
</div>
</form>

执行“创建”操作时,您会看到提示消息"Hello there";执行“编辑”操作时,您会看到EditShutdown.Comments_Operations的值。

对于asp-for属性,您可以参考: https://docs.microsoft.com/en-us/aspnet/core/mvc/views/tag-helpers/intro?view=aspnetcore-2.1