2010-10-22 84 views
1

在文本字段中輸入任何內容時,我都能看到結果。結果會轉到我想要的DIV。但是,我查看頁面的源代碼,我沒有看到替換元素。ASP .NET MVC AJAX BeginForm InsertionMode.Replace Not Working well

例如,我輸入'aaaaaaaaaaaaaaaaaa',點擊提交按鈕,我看到結果爲 您輸入了aaaaaaaaaaaaaaaa;但是右鍵點擊開源,我看不到它的HTML元素

因爲我在其他地方使用Accordion,所以Accordion無法正常工作,因爲JavaScript沒有看到從Action返回的html元素。

我該怎麼辦才能修復它?

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> 

<h2>Home Page</h2> 
<%using (Ajax.BeginForm("Index", new AjaxOptions { UpdateTargetId = "HomeResult", InsertionMode = InsertionMode.Replace })) 
    { %> 
    <%= Html.TextBox("query", null, new {size=40}) %> 
    <input type="submit" value="Home Submit" /> 
<%} %> 

<div id="HomeResult"> 
    <h2>Home result goes here.</h2> 
    <%Html.RenderPartial("PartialResult", ViewData.Model); %> 
</div> 

控制器動作

public ActionResult Index() 
    {    
     if (Request.IsAjaxRequest()) 
     { 
      ViewData["Message"] = "Partial View Logon"; 

      return PartialView("PartialResult", Request.Params.Get("query")); 
     } 
     return View(); 
    } 

部分結果查看

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> 

<div> 
<% if (Model != null) %> 
<% { %> 
    <h1> 
     You entered <%= Model.ToString() %> 
    </h1> 
<% } %> 
</div> 

回答

0

我覺得你正在觀察你的問題,在錯誤的道路。您正在查看加載的DOM的源代碼,而不是更新的DOM。我說使用Firefox/Chrome和Web開發工具欄,它可以讓你查看「生成」源。

+1

我看到了Firebug中的html元素,感謝提醒我。 – 2010-10-25 17:53:20

0

右鍵打開源

會給你的頁面源代碼的頁面被下載時,並沒有反映自頁面加載到DOM所做的更改。也許你應該考慮使用一個適當的網絡調試器,如FireBug

一旦你可以看到到底發生了什麼,你可能最好能弄清楚,事情會出錯。

+0

謝謝。我添加RunAccordion jQuery的JavaScript函數,並在Ajax OnSuccess事件中調用它。有用。 – 2010-10-25 17:52:30