2014-10-09 106 views
0

主視圖包含@Ajax.ActionLink用partialView更新div目標的鏈接。一切正常。MVC4部分視圖無返回

@Ajax.ActionLink("Update", "MemberInfo", new AjaxOptions() { HttpMethod = "GET", UpdateTargetId = "divCurrentView", InsertionMode = InsertionMode.Replace }) 

<div id="divCurrentView"></div> 

的問題是:當顯示partialview和點擊我目前更新數據並返回到重新加載數據的相同局部視圖。同時會dropdownlists..etc`

調用管窺:

public PartialViewResult MemberInfo(){ 
    ....... 
    ViewBag.Members= new SelectList(_db.Members, "Id", "Text"); 
    return PartialView("_MemberInfo",model); 
} 


[HttpPost] 
public PartialViewResult MemberInfo(InformationVM model){ 
     ....... update data 
    //if I dont include the ViewBag again it will fail on reload 
    ViewBag.Members= new SelectList(_db.Members, "Id", "Text"); 
    return PartialView("_MemberInfo",model); 
} 

,而不是迴歸到同一PartialView我可以只顯示局部視圖內的屏幕上顯示「數據被更新」的消息?

+0

我建議你用更多的代碼來改善你的問題。現在很多猜測。 – Mrchief 2014-10-09 19:40:41

+0

是的,你可以。例如,返回方法中沒有內容狀態代碼。當您的AJAX調用成功時,顯示消息。或'返回內容(「成功!」)並顯示。 – 2014-10-09 19:42:05

+0

@DasKrümelmonster當我嘗試返回內容(「成功!」)我得到一個錯誤不能隱式地將類型'System.Web.Mvc.ContentResult'轉換爲'System.Web.Mvc.PartialViewResult – Ben 2014-10-09 19:44:25

回答

0

當你定義你的ActionLink的,你可以選擇被替換的元素:

@Ajax.ActionLink("Do something", "_Methodname", new AjaxOptions { 
HttpMethod = "POST", 
UpdateTargetId = "StatusMessage", 
InsertionMode = InsertionMode.Replace, 
}, new {@class = "text-danger"}) 
<span id="StatusMessage"></span> 

這樣,該消息被加載到span元素。


在這種情況下,我會包括在div內的ActionLink的並更換DIV(包括ActionLink的)的與該部分的內容,這次包括另一個(不同的)ActionLink的。

<div id="divCurrentView"> 
    @Ajax.ActionLink("Update", "MemberInfo", new AjaxOptions() { HttpMethod = "GET", UpdateTargetId = "divCurrentView", InsertionMode = InsertionMode.Replace }) 
</div> 

部分:

<div id="divCurrentView"> 
    @Ajax.ActionLink("Update", "MemberInfo", new AjaxOptions { 
    HttpMethod = "POST", UpdateTargetId = "StatusMessage", InsertionMode = InsertionMode.Replace}) 
    <span id="StatusMessage"></span> 
</div> 

這樣一來,第二(和隨後的)點擊將POST和在控制器使用不同方法。

+0

我在主視圖中使用actionlink替換元素..我更新了我的問題,請你看看它。 – Ben 2014-10-09 20:06:29

+0

感謝您的示例。 – Ben 2014-10-10 04:13:45