2011-01-05 72 views
0

我有一個帶有jquery選項卡的索引頁面。在其中一個選項卡中,我打開一個局部視圖company.ascx。在那裏我有2 RenderActions'一個加載公司標題,另一個加載分支信息。在jQuery對話框中張貼部分視圖的動作

<% Html.RenderAction("Compheader", "Home"); %> 
<br /> 
<br /> 
<% Html.RenderAction("BranchList", "Branch", new { Id = Request.QueryString[0], pdate = Request.QueryString[1] }); %> 

BranchList我顯示分支的表其中的每一個具有關聯的刪除按鈕。分支列表上還有一個添加按鈕。這兩個按鈕都會打開一個jQuery對話框,打開其中的部分視圖(acsx)。對話框中有一個提交帖子。

當用戶在插入/添加或刪除視圖上單擊提交時,我希望能夠刷新BranchList操作,它將獲取新的分支列表並顯示它。

現在在刪除或發佈插入我的響應重定向到刷新整個頁面的索引頁。有人可以告訴我如何以乾淨的方式使用Html.BeginForm和ajax帖子來完成此操作,而不是響應重定向。

回答

0

您直接在您的視圖中訪問QueryString,這意味着您沒有使用任何ASP.NET MVC框架的優點。您應該在action方法中使用這些值(使用匹配的參數名稱作爲action方法構造函數中的QueryString變量),然後將這些值從action方法傳遞到視圖(使用視圖模型或ViewData),以便您沒有直接在視圖中訪問QueryString。

現在回到你的問題,我認爲你做對了。如果您從應用程序獲得正確的行爲,那麼您不應該更改應用程序的重定向後行爲。

您正在發佈部分視圖中的數據,然後進行重定向。這是一種有效的模式,也稱爲GPG(Get,Post,Get)模式。與簡單地將用戶發送到他們的「發佈」頁面相比,這是有利的,因爲它避免了讓用戶在刷新頁面的情況下發布兩次相同的數據。

希望它有幫助。