2012-04-04 87 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

你試過編寫代碼嗎?如果你這樣做會怎樣?你有錯誤嗎?錯誤說的是什麼?什麼沒有發生,你認爲應該發生? – 2012-04-04 21:05:08

+0

創建一個輔助方法。 http://weblogs.asp.net/scottgu/archive/2011/05/12/asp-net-mvc-3-and-the-helper-syntax-within-razor.aspx – CrazyDart 2012-04-04 21:06:00

回答

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爲該項目分配一個圖像。這也可以讓你在一個單一的代碼點更容易地修改圖像的URL,而不是在每個視圖中修改你使用這個邏輯。

相關問題