在 ASP.NET Razor 中,如何在字符串中包含模型属性?
In ASP.NET Razor, how to include model attribute in a string?
有没有一种干净的方法可以在剃刀页面中包含字符串替换?
也就是说,我有一些看起来像这样但不起作用的剃刀代码。我觉得我少了一些标点符号。
<div class='card-img'>
<img src='images/User-@Model.Id.jpg'/>
</div>
使用您当前的代码,razor 认为表达式 Model.Id.jpg
是它需要的一些服务器端代码 execute.So 您将收到一条错误消息,指出没有这样的 method/property 在 Id
的任何类型上调用 jpg
,或者在该类型中没有名为 jpg
的扩展方法。
要解决此问题,您应使用显式 (
和 )
包装您的 C# 表达式
<div class='card-img'>
<img src='images/User-@(Model.Id).jpg'/>
</div>
这告诉 razor Model.Id
是它需要执行的 C# 表达式。执行该表达式的输出将在 HTML.For 示例中呈现,如果 Model.Id
的值为 100
,则呈现的输出将是
<img src="images/User-100.jpg">
现在根据您存储图像的位置调整您的路径(src 值)。
尝试使用 Razor 代码块 @(...)
或 @Url.Content()
帮助程序进行字符串连接:
@* Code block string concatenation *@
<img src='images/User-@(Model.Id).jpg'/>
@* Content helper string concatenation *@
<img src='@Url.Content("images/User-" + Model.Id + ".jpg")'/>
请注意 @Model.Id.jpg
不起作用,因为 Id
属性 没有名为 jpg
的成员,因为第二个点 (.
) 被视为 member access expression.
有没有一种干净的方法可以在剃刀页面中包含字符串替换?
也就是说,我有一些看起来像这样但不起作用的剃刀代码。我觉得我少了一些标点符号。
<div class='card-img'>
<img src='images/User-@Model.Id.jpg'/>
</div>
使用您当前的代码,razor 认为表达式 Model.Id.jpg
是它需要的一些服务器端代码 execute.So 您将收到一条错误消息,指出没有这样的 method/property 在 Id
的任何类型上调用 jpg
,或者在该类型中没有名为 jpg
的扩展方法。
要解决此问题,您应使用显式 (
和 )
<div class='card-img'>
<img src='images/User-@(Model.Id).jpg'/>
</div>
这告诉 razor Model.Id
是它需要执行的 C# 表达式。执行该表达式的输出将在 HTML.For 示例中呈现,如果 Model.Id
的值为 100
,则呈现的输出将是
<img src="images/User-100.jpg">
现在根据您存储图像的位置调整您的路径(src 值)。
尝试使用 Razor 代码块 @(...)
或 @Url.Content()
帮助程序进行字符串连接:
@* Code block string concatenation *@
<img src='images/User-@(Model.Id).jpg'/>
@* Content helper string concatenation *@
<img src='@Url.Content("images/User-" + Model.Id + ".jpg")'/>
请注意 @Model.Id.jpg
不起作用,因为 Id
属性 没有名为 jpg
的成员,因为第二个点 (.
) 被视为 member access expression.