2010-06-30 42 views
3

ViewData.Model.ExecuteResult在ASP.NET MVC2中不存在,但在MVC1中不存在。ASP.NET MVC 2:ViewData.Model.ExecuteResult不存在

ASP.NET MVC2中的替代方法是什麼?

我想要做的是在ajax請求後更新表。所以我把表放在一個額外的視圖。如何在不加載整個頁面的情況下更新此部分視圖?

回答

1

ExecuteResult是System.Web.Mvc.ActionResult類中的一個方法。你確定你不是故意在那裏看?

http://aspnet.codeplex.com/SourceControl/changeset/view/23011#266522

Model屬性只是一個對象類型,而且一直都是,據我所知。

至於更新表,我在過去所做的那樣,在局部視圖後更新頁面的一部分是用Ajax.BeginForm像這樣:

<% using (Ajax.BeginForm("Customers", new AjaxOptions { UpdateTargetId = "customerList"})) { %> 
    <!-- FORM HERE --> 
<% } %> 
<div id="customerList"> 
    <% Html.RenderPartial("CustomerList"); %> 
</div> 

「UpdateTargetId」被這裏的關鍵,並告訴MVC使用「Customers」動作的結果來替換(默認情況下,您可以通過將InsertionMode AjaxOption設置爲InsertBefore或InsertAfter)將元素中的所有內容用您指定的Id進行替換。

如果你想用同樣的動作來服務整個頁面請求和Ajax請求,您可以使用IsAjaxRequest擴展方法,以確定哪些返回:

if (Request.IsAjaxRequest()) 
    return PartialView("CustomerList"); 

// Not an Ajax request, return the full view 
return View(); 

希望幫助!

+0

在ASP.NET MVC in Action中有這個表達式提到 – Rookian 2010-07-01 07:24:29

+0

你知道頁面#嗎? – 2010-07-01 11:06:25

+0

頁碼78 <%ViewData.Model.ExecuteResult(ViewContext); %> – Rookian 2010-07-01 11:15:47