You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MVC中TextArea无法显示控制器传递的模型值问题

解决ASP.NET Core视图中TextArea无法显示模型内容的问题

问题分析

你尝试的两种方式都存在使用误区:

  • 带asp-for的textarea:asp-for是TagHelper绑定,会优先使用模型绑定的值生成内容,直接在标签内写@display.UserComment会被忽略,若控制器未正确赋值模型属性,就会显示为空。
  • Html.TextAreaFor的Value参数:textarea的内容是放在标签内部的,Value不是textarea的标准属性,设置后只会渲染到元素属性里,不会显示在输入框中。

正确实现方式

方式1:使用asp-for TagHelper

确保控制器已将赋值后的模型传递给视图,直接通过asp-for绑定属性即可,无需手动在标签内写内容:

<textarea asp-for="UserComment"></textarea>

控制器示例代码:

public IActionResult YourView()
{
    var display = new YourModel { UserComment = "需要显示的纯文本内容" };
    return View(display);
}

方式2:使用Html.TextAreaFor辅助方法

直接指定模型属性表达式,辅助方法会自动从模型取值并渲染到textarea内部,无需设置Value参数:

@Html.TextAreaFor(m => m.UserComment)

若需设置行数、列数等额外属性,可通过htmlAttributes参数传递:

@Html.TextAreaFor(m => m.UserComment, new { rows = 6, cols = 80 })

注意事项

  • 确认模型的UserComment属性已被正确赋值,控制器传递模型时没有遗漏。
  • 视图绑定的属性名称需与模型属性名称完全匹配(大小写敏感)。
  • 若为POST回传后显示内容,需确保模型状态有效,或调用ModelState.Clear()清除旧状态,避免旧值覆盖。

内容的提问来源于stack exchange,提问作者cr7oo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 18:56:01