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

MultiLineText类型值无法在TextAreaFor中填充,更新功能遇阻求助

嘿,这个问题其实是ASP.NET MVC里TextAreaFor和TextBoxFor的渲染逻辑差异导致的,我来给你拆解清楚:

核心原因

  • HTML里的<textarea>标签和<input type="text">不一样,它没有标准的value属性,内容是直接写在标签闭合之间的(比如<textarea>这里是文本内容</textarea>)。
  • @Html.TextAreaFor 本身就会自动绑定你的Model.Text值,把内容渲染到标签内部,完全不需要手动加@Value参数。你额外加的@Value = Model.Text对它来说根本不生效,甚至可能干扰默认的绑定流程,导致值没被正确填充。
  • 而@Html.TextBoxFor对应的是<input>标签,这个标签有value属性,所以你手动设置的@Value能生效,但其实它也不需要手动指定,同样会自动从模型取值。

正确的写法

直接去掉@Value参数,用最基础的写法就行:

@Html.TextAreaFor(a => a.Text)

如果需要设置行数、列数或者样式这类HTML属性,直接在匿名对象里加就行,比如:

@Html.TextAreaFor(a => a.Text, new { rows = 6, cols = 80, @class = "form-control" })

额外注意点

还要确认下你的控制器在传递模型到视图时,Text属性确实被正确赋值了。另外如果之前有表单提交过,ModelState里的旧值可能会覆盖模型的新值,这种情况可以在控制器里调用ModelState.Clear()清除旧状态后再赋值模型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:26:50