2011-05-17 80 views
5

我正在使用MVC3(Razor)與Paging open source code here。當按下具有此代碼的控制器時,代碼調用:Asp Mvc用Ajax返回局部視圖不起作用

[Authorize(Roles = SystemConstants.ROLE_ADMINISTRATOR)] 
    public ActionResult ListUsers(int? page) 
    { 
    int currentPageIndex = page.HasValue ? page.Value - 1 : 0; 
    var products = userToDisplay.ToPagedList(currentPageIndex, 5); 
    return PartialView("ListUsersTable", products); 

    } 

這應該返回一個名爲「ListUsersTable」的PartialView。它不返回「ListUsersTable」,而是作爲整個頁面而不是替換DIV。

這裏是查看代碼:

<div id="listUserToBeUpdated"> 
     @Html.Partial("ListUsersTable", Model) 
    </div> 

的ListUsersTable內的按鈕進行Ajax調用看起來像這樣:

<div class="pager"> 
     @Ajax.Pager(Model.PageSize, Model.PageNumber, Model.TotalItemCount, "ListUsers", new AjaxOptions { UpdateTargetId = "listUserToBeUpdated" }) 
    </div> 

任何想法,爲什麼代碼不更換DIV但是返回頁面中的代碼呢?

回答

6

你引用了哪些JS文件?在ASP.NET MVC3中,他們將AJAX功能從MicrosoftMvcAjax.js更改爲jquery.unobtrusive-ajax.js,因此如果您尚未這樣做,請參考後者。

也驗證在web.config文件中的關鍵「UnobtrusiveJavaScriptEnabled」設置爲「真」

+0

UnobtrusiveJavaScriptEnabled在web.config中設置爲True。 – 2011-05-17 14:41:03

+0

我只有Jquery 1.4.4.js和jquery-ui和jquery.validate引用。 – 2011-05-17 14:41:51

+2

嘗試添加對「jquery.unobtrusive-ajax.js」文件的引用。 – FelixMM 2011-05-17 14:46:57