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

ASP.NET Core 2.2(非MVC):如何用Input Tag Helper显示Raw HTML内容

解决ASP.NET Core中展示HTML格式文本的问题

首先得明确:input表单控件本身会自动对内容进行HTML编码,所以不管你怎么设置asp-format或者尝试在asp-for里用Html.Raw,都没法让它渲染出原始HTML——它只会把HTML标签转成<、>这类实体字符显示出来,这是input控件的特性决定的。

你之前尝试的asp-for=@Html.Raw(Car.Description)报错,是因为asp-for属性接受的是模型属性表达式(比如Car.Description),而不是已经渲染好的HTML字符串,所以这种写法本身就不符合Tag Helper的使用规则。

正确的实现方案

既然要展示原始HTML,我们需要把input替换成可以直接渲染HTML的容器元素(比如div或span),同时保留原来的样式类保证页面布局一致。具体修改如下:

<div class="form-group row">
    <div class="col-2">
        <label asp-for="Car.Description"></label>
    </div>
    <div class="col-10">
        <!-- 用div替换input,添加form-control保持样式,用Html.Raw输出原始HTML -->
        <div class="form-control" readonly>@Html.Raw(Model.Car.Description)</div>
    </div>
</div>

补充说明

  • 样式保持:form-control类会给div加上和input一致的边框、内边距等样式,视觉上和原来的disabled input几乎没区别;
  • 安全提示:如果Car.Description的内容来自用户输入,直接用Html.Raw会有XSS注入风险,建议先对内容进行安全过滤(比如使用Microsoft.AspNetCore.Html.HtmlEncoder的相关方法),确保内容可信后再渲染;
  • 交互控制:div本身默认不可编辑,若需要完全禁止用户交互,可以额外添加CSS样式pointer-events: none;。

内容的提问来源于stack exchange,提问作者1 Zero 3 Tech

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:35:44