2009-09-16 71 views
3

我有一個部分在頁面上的div部分。我有一個按鈕上的事件。我怎麼能寫一個採用div並重新加載並重新加載局部視圖的Javascript。如何使用jQuery在ASP.NET MVC中使用PartialView重新加載div?

我有另一種觀點。但我現在不能這樣做。但我需要同樣的事情發生,只能通過jQuery而不是直接在頁面中執行。我可以在jQuery腳本中運行可能的simulate ajax代碼,因爲它的JavaScript也不是嗎?

<% using (Ajax.BeginForm("EditFeiertag", new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "feiertage" })) 
    { %> 
<div id="feiertage"> 
    <% Html.RenderPartial("FeiertagTable"); %> 
</div> 
<% } %> 

我會幫助我,如果我可以運行上面的腳本通過啓動一個點擊事件或類似的

回答

8

的東西讓我們從一些基本的控制器操作開始:

public class FeiertagController 
{ 
    IFeiertagService feiertagService = new FeiertagService(); 

    public ActionResult EditFeiertag() 
    { 
     // ... return your main edit view 
     return View(); 
    } 

    // Will be called by your jquery ajax call 
    public PartialResult GetFeiertagTable() 
    { 
     var feiertagData = messageService.getLatestFeiertagData(); 
     var viewModel = new FeiertagViewModel(); 
     feiertagViewModel.feirtagTableData = feiertagData; 

     return PartialView("FeiertagTableView", viewModel); 
    } 

} 

所以,EditFeiertag( )用於呈現整個編輯頁面,並且該頁面將在想要異步渲染局部視圖時調用GetFeiertagTable()。現在

,對你的看法,可以說你有類似:

<div id="Container"> 
    <div id="LeftPanel"> 
     // ... Some menu items 
    </div> 
    <div id="RightPanel"> 
     <a id="ReloadLink" href="#">Reload Table</a> 
     <div id="FeiertagTable> 
      <% Html.RenderPartial("FeiertagTable", Model.feiertagTableData); %> 
     </div> 
    </div> 
</div> 

這工作正常,將再次加載表。但是如果你點擊某個元素(在我們的例子中是#ReloadLink),你想重新加載Feiertag表格。

以下添加到您的網頁部分:

<head> 
     <script src="../../Scripts/Jquery/jquery-1.3.2.min.js" type="text/javascript"></script> 
     <script type="text/javascript"> 
      jQuery(document).ready(function($) { 
       $('#ReloadLink').click(function(e) 
       { 
        e.preventDefault(); // stop the links default behavior 
        $('#FeiertagTable').load('/Feiertag/GetFeiertagTable'); 
       }); 
      }); 
     </script> 
</head> 

那麼這將在單擊事件添加事件爲您重載鏈接,將調用一個jQuery load()方法。此方法是一個簡化的ajax get請求,它將替換所選div(FeiertagTable)的內容以及返回的內容。

我們的GetFeiertagTable()控制器操作將返回部分視圖,然後插入該部分視圖。

我希望這能讓您指出正確的方向!

相關問題