razor - Razor:将带有 _blank、noopener、noreffer 属性的 href 转换为 Html ActionLink
问题描述
我想创建一个 url,例如Html ActionLink
在新选项卡中打开并具有`rel` 的noopener
+noreferrer
值
<a
target="_blank"
rel="noopener noreferrer"
href="https://localhost:5001/Gallery/View?file=@Model?.Image?.Id">
@Model?.Image?.Title
</a>
但是这样我就硬编码了网址
我试过这样的事情:
<a
target="_blank"
rel="noopener noreferrer"
href="@Html.ActionLink(item?.Image?.Title, "View", "Gallery", new { file = item?.Image?.Id })">
</a>
或者
<a
target="_blank"
rel="noopener noreferrer"
@Html.ActionLink(item?.Image?.Title, "View", "Gallery", new { file = item?.Image?.Id })>
</a>
但它在转义 html 时遇到了困难,并以类似的方式结束
<a target="_blank" rel="noopener noreferrer" <a href="/Gallery
/View?file=123">Testimage.jpg</a>></a>
因此,链接通常有效,但会破坏 html 结构。
解决方案
Html.ActionLink 助手将生成整个<a>
标签。所以你需要在外面使用它。只需在您的页面中使用以下代码,无需任何<a>
标记
@Html.ActionLink(item?.Image?.Title, "View", "Gallery", new { file = item?.Imnage?.Id }, new { target = "_blank", rel = "noopener noreferrer" })
例子
<div>
@Html.ActionLink("Testimage.jpg", "View", "Gallery", new { file = 1 }, new { target = "_blank", rel = "noopener noreferrer" })
</div>
会给你以下结果。
<div>
<a href="/Gallery/View?file=1" rel="noopener noreferrer" target="_blank">Testimage.jpg</a>
</div>
推荐阅读
- kotlin - 如何添加/删除/编辑 kotlinx.serialization.json.JsonObject 的值
- keras - Keras Lambda 层中 output_shape 参数的优势是什么
- ruby - 在 Ruby 中仅在当前月份之间获取前一周
- flutter - 如何在 Flutter Web 中更改 chrome 标题颜色?
- r - 如何识别坐标(点)到线的方向
- javascript - 如何通过 Promise.resolve 在 JavaScript 中返回一个可以被其他代码正常使用的类的新实例
- api - API 平台 Symfony:仅获得 30 个结果(分页)
- react-native - 如何在 React Native 中集成 webex sdk
- javascript - 具有多个条件的Javascript过滤器数组whitin数组
- elasticsearch - elasticsearch数据流中强制@timestamp字段的用途是什么