2011-12-15 32 views
2

根據定義,我不得不張貼此問題。我使用ASP.NET MVC 3和ASPX表單收到了這條錯誤消息。我的錯字在哪裏?ASP.NET MVC 3:Html.Action上的堆棧溢出?

<a href="<%= Html.Action("About", "Home") %>"> 
<img src="<%= Url.Content("~/Content/images/newfront_04.jpg") %>" /></a> 

StackOverflowException

我創建了一個空白的項目進行比較:

  • Web配置一致減去連接字符串(包括查看的web.config)
  • 的Global.asax.cs包括航線是相同的減命名空間
  • Page指令相同
  • 家庭控制器代碼是相同的減命名空間
  • 以這條線了使一切工作
  • 整個頁面與HTML頁面指令的例外,ContentPlaceHolders
  • 這是的Site.Master文件
+1

你可以發表你的航線代碼?也是Action的聲明和控制器上的任何屬性。基本上就是進入選擇路線邏輯的任何東西。 – 2011-12-15 05:09:15

+0

是否有任何機會涉及部分視圖?你可能想要包含更多的視圖。 – 2011-12-15 05:12:32

回答

7

Html.Action實際上是渲染動作,你是把代碼,它是造成重入那裏。即:它調用整個操作並輸出結果視圖...不輸出網址。

你可能想要的是Html.ActionLink(它爲你呈現整個A標籤),或者Url.Action,只輸出URL - 而不是再次的動作結果。

2

嘗試Url.Action代替Html.Action

<a href="<%= Url.Action("About", "Home") %>"> 
<img src="<%= Url.Content("~/Content/images/newfront_04.jpg") %>" /></a>