2
A
回答
2
我真的不知道爲什麼一個擴展方法是不適合的,但這樣的事情應該工作:
@helper ActionImage(string action, object routeValues, string imagePath, string alt) {
<a href="@Url.Action(action, routeValues)">
<img src="@Url.Content(imagePath)" alt="@alt">
</a>
}
這只是從我的頭頂,讓您的milage可能會有所不同。您還應該能夠將問題中提供的實現用作@functions { }
塊,而不是擴展方法。
0
這裏是我的形象HTML輔助的簡單例子
關於HTML輔助小文章,以及如何分類:G642.44它在HTML輔助的另一個
http://www.sexyselect.net/blog/post/2011/08/16/Writing-a-Razor-MVC3-HTML-Helpers
例如 http://www.aspnetwiki.com/page:creating-custom-html-helpers
示例代碼
/// <summary>
/// Insights the traffic light image.
/// </summary>
/// <param name="html">The HTML.</param>
/// <param name="trafficLight">The traffic light.</param>
/// <returns>Image for the current traffic light. If not recognised writes name ot he light.</returns>
public static MvcHtmlString InsightTrafficLightImage(this HtmlHelper html, TrafficLight trafficLight)
{
StringBuilder result = new StringBuilder();
string color = string.Empty;
string hoverText = string.Empty;
switch (trafficLight)
{
case TrafficLight.Amber:
{
color = "Yellow";
hoverText = "Work in progress";
break;
}
case TrafficLight.Green:
{
color = "green";
hoverText = "Complete";
break;
}
case TrafficLight.Red:
{
color = "red";
hoverText = "Not yet started";
break;
}
case TrafficLight.Black:
case TrafficLight.Unknown:
default:
{
break;
}
}
if (!string.IsNullOrEmpty(color))
{
TagBuilder img = new TagBuilder("img");
img.MergeAttribute("src", string.Format("/Content/images/traffic_light_{0}.gif", color));
img.MergeAttribute("alt", hoverText);
img.MergeAttribute("title", hoverText);
result.Append(img.ToString());
}
else
{
result.Append(Enum.GetName(typeof(TrafficLight), trafficLight));
}
return MvcHtmlString.Create(result.ToString());
}
希望你找到它有用
+0
我試圖找到幫助方法的解決方案..類似的方法描述在引用的鏈接,但我沒有使用@幫助方法.. – Ante 2012-02-10 10:33:16
相關問題
- 1. 創建MVC3 Razor Helper像Helper.BeginForm()
- 2. 自定義Html Helper在視圖中無法使用(Razor/Asp.Net MVC3)
- 3. MVC3 RC Razor @helper位置
- 4. MVC3 Razor Ajax.ActionLink不會使用POST方法
- 5. MVC3動作鏈接 - 觸發Jquery的圖像按鈕
- 6. 請與組件ID操作鏈接在MVC3 Razor視圖引擎
- 7. 使用Razor MVC3的發送方 - 接收方
- 8. 如何使用MVC3和Razor創建動態圖像源?
- 9. 動作鏈接不MVC3
- 10. 如何製作自己的Razor Helper方法,如@ Html.TextBoxFor()?
- 11. ASP.NET MVC3鏈接@ Html.Raw中的圖像
- 12. ASP MVC3使用圖像作爲鏈接到不同的視圖/控制器
- 13. 鏈接文字上方的圖像
- 14. 圖像鏈接無法在移動設備上使用
- 15. Chainable Razor Helper API
- 16. 遞歸調用ASP.NET MVC中的@helper方法Razor,@helper方法中的代碼在執行期間被跳過
- 17. 無法訪問App_Code中的Razor @helper
- 18. 鏈接不是在ASP MVC3 Razor視圖正確顯示
- 19. 如何使用接受圖標作爲參數的rails helper方法?
- 20. MVC3 - Helper方法被幾個控制器使用
- 21. 使用.next()方法更新燈箱中的圖像鏈接
- 22. 鏈接的圖像上jqZoom
- 23. 超鏈接調用動作方法
- 24. 爲什麼我的看法動作鏈接包括MVC3
- 25. 無法使圖像的鏈接
- 26. 使用pyimgur將圖像上傳到imgur,使用圖像鏈接
- 27. 使用的link_to使圖像的鏈接
- 28. 使用Node/Nightwatch自動點擊圖像映射動作/鏈接
- 29. 瀏覽器在MVC3 Razor上的圖像上扮演着不同的角色
- 30. 與動作鏈接傳遞參數的圖像
我剛剛Google了它!我不知道從哪裏開始。由於varius依賴關係,此解決方案不能只在輔助方法中複製。 – Ante 2012-02-10 01:30:05