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

ASP.NET Core MVC中使用ViewBag填充textarea失败问题排查

解决TextArea无法通过ViewBag填充内容的问题

你的问题核心是:用asp-for绑定的<textarea>没法显示@ViewBag.JobsDetails.job_description的内容,但换成TextBox就能正常显示,且ViewBag数据不为空。

问题原因

asp-for是ASP.NET Core的Tag Helper属性,它会优先绑定模型中对应字段的值。如果你的页面模型里job_description字段是空的,就会覆盖你在textarea标签内写的ViewBag内容。而TextBox如果是直接读取ViewBag值(比如没用到asp-for),就不会受模型绑定的影响,所以能正常显示。

解决方案

方案1:移除asp-for,直接用ViewBag填充

如果不需要该textarea和模型绑定,直接删掉asp-for属性即可:

<div class="col-lg-6 mb-4">
    <label class="form-label" for="job_description">Job Description</label>
    <textarea class="form-control" id="job_description">@ViewBag.JobsDetails.job_description</textarea>
</div>

(手动给label加for、textarea加id,保证标签关联的语义化)

方案2:让模型值同步ViewBag内容

如果需要保留asp-for的模型绑定功能,在Controller里把ViewBag的值赋值给模型的对应字段:

// 假设你的页面模型是JobViewModel
var viewModel = new JobViewModel();
// 将ViewBag的内容同步到模型字段
viewModel.job_description = ViewBag.JobsDetails.job_description;
return View(viewModel);

这样asp-for绑定模型时,就会显示ViewBag传递过来的内容。

额外排查步骤

可以在页面上临时添加调试代码,确认ViewBag的内容确实存在:

<!-- 调试用,确认内容 -->
<p>调试输出:@ViewBag.JobsDetails.job_description</p>

如果这里能正常显示,就说明问题确实出在模型绑定覆盖了标签内的内容。

内容的提问来源于stack exchange,提问作者A.Mac

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 14:59:57