2011-03-15 84 views
0

我從MVC1有以下HTML。MVC 3 - img alt HTML標記?

<img alt="<%= Html.Encode(item.Name) %>" src='<%= this.Url.Action("Image", 
"Products") + "/" + item.ID.ToString()%>' width="64" height="64" /> 

我怎麼會用這個MVC 3,我已經試過它不工作如下...提前

<img alt=" @Html.Encode(item.Name)" src='<@this.Url.Action(("Image", 
"Products")) + "/" + Picture1.SubProductCategoryID.ToString()>' 
width="64" height="64" /> 

感謝

+1

我認爲你的意思是剃刀,而不是MVC 3. – smartcaveman 2011-03-15 14:34:07

回答

2

我正在做一些假設,但:

<img alt="@item.Name" 
     src='@(Url.Action("Image", "Products") + "/" + Picture1.SubProductCategoryID.ToString())' 
     width="64" 
     height="64" /> 

如果你有一個聲明,而不是一個簡單的動作調用,你需要與周圍括號()整個語句。此外,您需要在助手周圍放置<>。 @SLaks對於不需要Html.Encode也是對的。

+0

http://blog.slaks.net/2011/01/dont-call-htmlencode-in-razor.html – SLaks 2011-03-15 14:35:48

+0

@SLaks - 只是爲了解決這個問題當你評論。當你剪切/粘貼並且一次沒有看到所有內容時,會發生這種情況。 FWIW,你的回答比較好,但是我要離開我的,因爲有時候需要用parens來做一個聲明,例如:'@(foo == bar?Url.Action(「Index」,「Foo」):Url .Action(「Index」,「Bar」))' – tvanfosson 2011-03-15 14:36:16

+0

謝謝你們,我相信這已經解決了。我希望可以關閉這篇文章並打開一個新文章。原因是我試圖從MVC 3中的數據庫上傳圖像,但失敗了。 – DiscoDude 2011-03-15 14:52:50

2

更改src

src="@Url.Action("Image", "Products")/@Picture1.SubProductCategoryID" 

另外,don't call Html.Encode;剃刀爲你做這個。