我有一個微軟MVC項目與動作,其視圖(「Foo.aspx」)「富」包含線路:Html.ActionLink()給我一個空鏈接時,我用它裏面Html.RenderAction()
<%= Html.ActionLink("mylinktext1", "bar") %>
<%= Html.ActionLink<MyController>(x => x.Bar(), "mylinktext2") %>
當我打這個從網絡瀏覽器或AJAX調用加載它,它正確返回:
<a href="/bar">mylinktext1</a>
<a href="/Bar">mylinktext2</a>
但是,當我打電話從另一種觀點認爲這樣的動作:
<% Html.RenderAction<MyController>(x => x.Foo()); %>
然後鏈接呈現沒有目標。
<a href="">mylinktext1</a>
<a href="">mylinktext2</a>
爲什麼會發生這種情況,我該如何解決它?
讓AJAX操作返回用戶控件視圖有意義嗎? 我的項目有可以直接通過HTTP訪問的操作,但我也希望能夠訪問從其他頁面呈現其視圖。例如,假設我有一個AJAX調用來動態更新頁面的一部分,但是當該頁面首次被渲染時,我想在不調用該動作的情況下合併頁面的這一部分,因爲頁面動作已經計算了所有的值AJAX行動將不得不計算。該頁面可以將變量填充到部分中。這是明智的做法嗎? – 2010-02-19 16:15:43
我將.aspx文件切換到.ascx文件,同樣的問題仍然存在。 <%= Html.ActionLink(「mylinktext1」,「bar」)%>顯示與href =「」的鏈接。 – 2010-03-08 17:00:48
啊哈。使用<%Html.RenderAction(x => x.Foo()); %>導致問題。使用<%Html.RenderAction(「Foo」,「MyController」); %>正常工作。爲什麼鍵入的版本會失敗並且魔術字符串版本有效? –
2010-03-08 18:36:34