我想使用string.Format
在Razor视图中渲染图像,如下所示...
foreach (var p in @Model.Photos)
{
string.Format("<img src='{0}' width='100' alt='{1}' />", p.Path,
p.AlternateText);
}
这里显然出了问题,因为在呈现这个页面时,我在这个部分中什么也没有得到。
发布于 2013-03-16 04:34:48
string.Format()
返回一个字符串,而您正在丢弃该字符串。
您需要将该字符串打印到页面:
@string.Format(...)
请注意,由于这不是一个语句,因此不应该有;
。
另请注意,最好使用Razor本身:
<img src="@p.Path" width="100" alt="@p.AlternateText" />
发布于 2013-06-04 18:51:40
我这样做只是为了绕过这个问题:
@model UXLab.Areas.SectionArea.ViewModels.SectionViewModel
<section>
<header>@Model.Title</header>
<p>
@{var contentBuilder = new System.Text.StringBuilder(); }
@foreach (var link in Model.Links)
{
contentBuilder.append(Html.ActionLink(link.LinkText, link.Action,
link.Controller));
}
@Html.Raw(contentBuilder.ToString())
</p>
</section>
在这个例子中,我遍历了一些我想要显示的页面链接,这些链接存储在一个ViewModel
中。
为了在页面上显示链接,我循环遍历所有链接,并将它们添加到一个StringBuilder
中,然后使用Html.Raw
显示原始的超文本标记语言,如果不使用Raw
,则无法将引号和内容传递到页面示例:
1: @String.Format("\"Hello {0}\"", Model.Name)
2: @Html.Raw(String.Format("\"Hello {0}\"", Model.Name))
第1行将显示" Hello " Melman
第2行将显示"Hello Melman"
这是我在处理输出到页面时发现的一些东西。基本思想是,构建页面html,然后显示它。因此,当您完成对html输出的操作之后,就可以使用@
outsite of any {}
来显示它。
发布于 2015-10-30 23:26:28
我也遇到了同样的问题,我已经使用Url.Content和string.Format这样做了:
<img src="@Url.Content(string.Format("~/Content/img/{0}", Resources.MyImage))" />
https://stackoverflow.com/questions/15441584
复制相似问题