2012-04-04 16 views
0

私はASP.NET MVC3を少し新しくしました。 私は私が欲しいものCSHTMLファイルにASP.NET MVC 3はcshtmlファイルのC#コードを使用します

@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#のコードを書くことです。アイテムIDをUrl.Content("~/images/coupled.png") に変更します。最後に

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で私はどのように考えていない

+1

コードを書きましたか?もしあなたがしたらどうなりますか?エラーが発生していますか?エラーは何を言いますか?あなたは起こるはずがないと思われることは何ですか? –

+0

ヘルパーメソッドを作成します。 http://weblogs.asp.net/scottgu/archive/2011/05/12/asp-net-mvc-3-and-the-helper-syntax-within-razor.aspx – CrazyDart

答えて

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()));     
} 
1

はAsp.net MVCに新しいビーイング私はあなたにいくつかのアドバイスを与えてみましょう、はそれをしないでください!ビューに入れるコードの大部分はforループです。そのようなロジックはすべてアクション内で実行する必要があります。

は基本的にデータを取得し、アクション内のすべてのロジックと書式設定を行い、ビューモデルに追加してビューに渡します。他にも、実行時までエラーのない非常に脆いコードブロックを作成することをお勧めします。

1

イメージクラスを追加するようにアイテムクラスを変更してください。画像クラスでは、Image.URL、Image.Titleを追加できます。コントローラーでこのようにして、そのIDに基づいて項目に画像を割り当てることができます。これにより、このロジックを使用するすべてのビューを変更するのではなく、1つのコードポイントで画像のURLをより簡単に変更することもできます。

関連する問題