gpt4 book ai didi

asp.net-mvc-3 - 如何使用 Razor 显示动态图像名称

转载 作者:行者123 更新时间:2023-12-02 03:28:46 25 4
gpt4 key购买 nike

我对 MVC 相当陌生,最近使用 Razor View 引擎启动了一个 Asp.Net MVC3 项目。

目前,我在使用 Razor 将图像名称输出到 html img 标签时遇到问题。

假设我的模型中有一个 Car 类,有一个名为 ModelName 的字符串属性。我还有一个包含汽车模型图像的文件夹,它们以汽车模型命名,这样我就可以按照惯例仅使用名称来显示特定模型的图像。

从我的 Controller 中,我将汽车集合传递到我的 View ,并执行以下操作来显示汽车模型图像列表:

@foreach (var item in Model) {
<img src='@item.ModelName.png' />
}

但是,如果我尝试运行它,则会收到错误:

Compiler Error Message: CS1061: 'string' does not contain a definition for 'png' and no extension method 'png' accepting a first argument of type 'string' could be found (are you missing a using directive or an assembly reference?)

我也尝试过

    @foreach (var item in Model) {
<img src='@{item.ModelName}.png' />
}

但这会导致:

Compiler Error Message: CS1528: Expected ; or = (cannot specify constructor arguments in >declaration) Source Error:

Line 84: #line default Line 85: #line hidden Line 86: WriteLiteral(".png\' ">\r\n"); Line 88:

我可以通过以下方式解决这个问题:

@foreach (var item in Model) {
string imageName = string.Format("{0}.png", item.ModelName);
<img src='@imageName' />
}

但这感觉很笨拙,肯定有更好的方法吗?

最佳答案

您还可以这样做:

@foreach (var item in Model) 
{
<img src="@(item.ModelName).png" />
}

或者制作一个助手:

public static MVCHtmlString Image<T>(this HtmlHelper helper, string name)
{
TagBuilder img=new TagBuilder("img");
img.Attributes.Add("src", name+".png");
return new MvcHtmlString(img.ToString());
}

并像这样使用它:

@foreach (var item in Model) 
{
@Html.Image(item.ModelName)
}

关于asp.net-mvc-3 - 如何使用 Razor 显示动态图像名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5974262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com