0

我对 ASP.NET MVC3 有点陌生。我在 cshtml 文件中有这段代码

    @grid.GetHtml(
        htmlAttributes: new { id = "grid" },
        tableStyle: "grid",
        headerStyle: "header",
        rowStyle: "row",
        footerStyle: "footer",
        alternatingRowStyle: "altRow",
        columns: grid.Columns(
            grid.Column(header: "", format: @<text><input name="Checked" type="checkbox" value="@item.Key" /></text>, style: "CheckboxColumn", canSort: true),
            grid.Column("Name", "Name"),
            grid.Column("Address", "Address"),
            grid.Column("City", "City"),
            grid.Column("PhoneNumber", "Phone Number"),
            grid.Column("", format: (item) =>
            {

                if (item.ID.Length > 0)
                {
                    //CODE GOES HERE
                    return Html.Raw(string.Format("<text><img src=\"{0}\" alt=\"Image\" class=\"ToolTip\" title=\"ID # {1} <br> \" /></text>", Url.Content("~/images/coupled.png"), @item.ID.ToString()));
                }
                else
                {
                    return Html.Raw("<text></text>");
                }
            }),
        ))

我想要的是在该//CODE GOES HERE部分编写一个 C# 代码。为了更改Url.Content("~/images/coupled.png") 项目 ID 的附加信息。

所以基本上我想要类似的东西:

string URLOfPic;
if(item.ID > 1000)
{
    URLOfPic="~/images/aaa.png
}
else
{
    URLOfPic="~/images/bbb.png
}

最后使用Url.Content(URLOfPic)

那么如何在页面中使用该 C# 代码呢?

我希望我很清楚。非常感谢您的帮助

PS:我希望它是 C# 代码,而不是 javascript 或其他任何东西。在普通的 ASP.NET 中,我可以使用后面的代码来完成它。但在 MVC3 中我不知道如何

4

3 回答 3

1

作为 Asp.net mvc 的新手,让我给你一些建议,不要那样做! 您应该在视图中拥有的大多数代码是 for 循环,所有这些逻辑都应该在操作中完成。

基本上获取您的数据并在操作中执行所有逻辑和格式化并将其添加到视图模型,然后将其传递给视图。否则,您将创建非常脆弱的代码块,直到运行时才会出错

于 2012-04-04T21:31:17.760 回答
1

修改您的项目类以添加图像类。在图片类中可以添加Image.URL、Image.Title。通过这种方式,您可以在控制器中根据其 ID 为项目分配图像。这也将允许您更轻松地在单个代码点修改图像 URL,而不是在您使用此逻辑的每个视图中进行修改。

于 2012-04-05T17:06:26.887 回答
0

我想你很接近,这没有用吗?

if (item.ID.Length > 0)
{
    string URLOfPic; 
    if(item.ID > 1000) 
    {     
        URLOfPic="~/images/aaa.png";
    } else {     
        URLOfPic="~/images/bbb.png";
    }
    return Html.Raw(string.Format("<text><img src=\"{0}\" alt=\"Image\" class=\"ToolTip\" title=\"ID # {1} <br> \" /></text>", Url.Content(URLOfPic), @item.ID.ToString()));                 
} 
于 2012-04-04T21:08:17.893 回答