2017-02-21 134 views
1

我有一個索引的MVC控制器,當用戶通過表單過程時,它將循環多個PartialViewMVC局部視圖循環返回上一個局部視圖

這裏是指數:

@section pageMain { 
    <div id="partialView"> 
     @Html.Partial("SelectAccount", SUPR.Models.Account.GetAccounts()); 
    </div> 
} 

這工作得很好,我也得到了SelectAccount頁面就好了。

我的問題是,我有一個AJAX調用,當用戶在SelectAccount頁面上選擇一個表中的一行時運行。應該發生的是PartialView然後被替換爲另一個PartialView,顯示所選行的詳細信息。這實際上確實有效,但大約1秒鐘後,它會循環回到SelectAccountPartialView,由於某種原因,該查詢字符串會附加到該URL。

Before

After

下面是AJAX調用的代碼:

$.ajax({ 
    type: "GET", 
    url: "/Review/GetReviewView", 
    data: { profitCenter: profitCenterNo } 
}).done(function (data) { 
    $('#partialView').html(data); 
}); 

唯一是在控制器GetReviewView情況是,我返回PartialViewPartialView名稱和型號。這是因爲,在那個短暫的時刻,我可以看到ReviewAccount視圖,正確的數據在字段中。

任何想法爲什麼這種奇怪的行爲發生?

+0

而且,是的,如果您有任何建議,我完全接受其他/更好的方法。 – Ryan

回答

0

您是否在JS中捕獲event?如果您進而引發click事件則event參數添加到方法,然後在方法的末尾添加:

event.preventDefault()

,看看它是否仍然發生。這聽起來像是客戶端JS問題,而不是C#問題。

你這樣做的方式其實很好。曾經有一個名爲ASP-AJAX的微軟庫,或者別的什麼,不記得,因爲我沒用太多。這個庫基本上允許你用ASP-AJAX-METHOD,ASP-AJAX-REFRESH-TYPE來裝飾HTML元素,它會自動做類似於你現在正在做的事情。轉到服務器並檢索PartialView。

+0

在這個時刻,你真是我最愛的人。我在這個帖子上尋找了幾個小時,嘗試了無數不同的解決方案。一行,去圖:/ – Ryan

+0

哈哈沒問題,我曾經發生過很多次!祝你好運! –