2011-04-20 200 views
1

在我的代碼,我使用的局部視圖(稱之爲PV1)在ASP.Net渲染視圖MVC

<div id="div_1"> 
    <% Html.Partial("PV1", Model); %> 
</div> 

,並在局部視圖我使用「Ajax.BeginForm」將其重定向到一個特定的行動,因此它這樣做...

using (Ajax.BeginForm("action1", "Forms", null, new AjaxOptions { UpdateTargetId = "div_1" }, new { id = "form1" })) 
       { 
        Response.write("I am here."); 
       } 

public ActionResult action1(XYZ Model) 
{ 
     // 
     return PartialView("PV1", Model); 
} 

在行動,我再次調用相同部分「PV1」的最後一行,因此它也這樣做......

但渲染時該視圖不打印或執行寫入的步驟在局部視圖,它覆蓋他們,並表明什麼?

回答

2

Html.Partial實際上返回渲染視圖的結果,你想要做<%= Html.Partial() %><% Html.RenderPartial(); %>

Html.Partial()返回HTML正是如此必須通過<%= %在頁面上輸出>和Html.RenderPartial()使用的Response.Write輸出到頁面上,並可與<% %>一起使用。

+0

Html.Partial(),因爲我將控制器動作的輸出結果返回給視圖...但是它對我的查詢有什麼影響,我正在使用的ren輸出...只是爲了讓你知道...嘗試這兩種方法...但問題仍然存在...請爲我提供一個例子... – 2011-04-26 13:58:42

+0

我做到了使用Html.RenderPartial()...但這樣做你必須非常小心地安排你的div ... – 2011-05-18 11:04:14

1

這不是你會使用Ajax.BeginForm什麼。該助手被用來創建,稍後將提交給使用MVC的不顯眼的AJAX服務器實際<form>標籤(所以你仍然需要某種觸發動作 - 一個按鈕,JavaScript的 - 任何提交表單)。

我是不是你想要達到的目的很明確。如果你想用ajax加載部分視圖,我會建議使用類似jQuery的ajax加載方法。

+0

我使用一個提交按鈕......但反而再次呈現在頁面會顯示在空白頁的局部視圖局部視圖...我也試着使用Ajax.BeginForm(...)和InsertionMode。 .. 我試圖達到相同的結果,因爲它是在下面的帖子解釋 http://stackoverflow.com/questions/931001/self-ajax-updating-partial-view-controller-in-asp-net-mvc - 和最複製-DIV 但結果是一樣的... ...,可以請你也幫我展示瞭如何實現使用jQuery和AJAX相同的行爲(請舉一些代碼示例...)我使用 – 2011-04-26 13:49:47