2012-03-14 34 views
0

我有這樣的動作在我的控制器更新使用控制器動作一個div沒有ASP充值頁面MVC

public ActionResult TestItemLogistic() 
    { 
     ControlViewModel model = new ControlViewModel(); 
     model.itemSelected = "Logistic"; 
     return RedirectToAction("MenuList", model); 

    } 

一旦我點擊一個

<a [email protected](subItem.action, subItem.controller)> 

我想這個動作被稱爲能夠做到這一切,而無需重新充值頁面,只需更新一些div。

任何想法?

謝謝。

+0

您想使用AJAX。具體來說,我會看看[jQuery .load()函數](http://api.jquery.com/load/)。 – 2012-03-14 11:01:52

回答

0

您可以使用.load將所選元素的內容替換爲從URL中檢索到的HTML輸出。

說你有

<a href="@url.Action(subItem.action, subItem.controller)" id="ClickMe">Click Me</a> 
<div id="ReplaceMe"></div> 

你可以做這樣的事情:

<script type="text/javascript"> 
$(function() { 
    $('#ClickMe').click(function(e) { 
     e.preventDefault(); 
     $('#ReplaceMe').load($(this).attr('href')); 
    }); 
}); 
</script> 

編輯:我現在看到的,你想有一個鏈接到一個動作,它返回一個URL,然後你想要加載結果URL的內容。

public ActionResult TestItemLogistic() 
{ 
    ControlViewModel model = new ControlViewModel(); 
    model.itemSelected = "Logistic"; 

    UrlHelper u = new UrlHelper(ControllerContext.RequestContext); 
    return Content(u.Action("MenuList", model)); 

} 


<script type="text/javascript"> 
$(function() { 
    $('#ClickMe').click(function(e) { 
     e.preventDefault(); 
     $.get($(this).attr('href'), function(url) { 
       $('#ReplaceMe').load(url); 
     }); 
    }); 
}); 
</script> 
+0

感謝您的回覆,這似乎是一個很好的解決方案,我忘了告訴你,該動作呈現的視圖是相同的視圖。所以理想情況下,我想執行該操作而不返回任何內容並從javascript更新div – kbaccouche 2012-03-14 11:28:34

0

您煥使用從視圖中的Ajax屬性的文檔。您可以添加可通過ID

@Ajax.RouteLink("TestLink", new { controller = "Persoon", action = "Partial" },new AjaxOptions() { InsertionMode = System.Web.Mvc.Ajax.InsertionMode.Replace UpdateTargetId = "Id Element"}) 

更新任何元素的鏈接試試這個

相關問題