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: JavaScript などではなく、C# コードにしたいのです。通常の 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 に答える