2009-04-18 71 views
2

我對AJAX和Javascript世界非常陌生,我試圖實現Scott Hanselman's表單提交示例來更新頁面的一部分。我幾乎一字不差地複製了他的例子,我似乎無法讓它起作用。當我單擊提交按鈕時,控制器操作被成功調用,但結果在瀏覽器中作爲新頁面呈現,而不是隻更新我在Ajax表單中指定的範圍。如何讓Ajax表單提交在ASP.net MVC中工作?

這裏是我的視圖代碼:

<asp:Content ID="indexHead" ContentPlaceHolderID="head" runat="server"> 
    <title>Home Page</title> 
</asp:Content> 

<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server"> 

    <% using (Ajax.BeginForm("TestAction", new AjaxOptions { UpdateTargetId = "target" })) 
     { %> 

     <%= Html.TextBox("TextBox")%> 
     <input type="submit" value="Submit" /> 
     <span id="target" /> 

    <% } %> 

</asp:Content> 

我的控制器操作:

public string TestAction(string TextBox) 
    { 
     return TextBox; 
    } 

而且我已經包含在母版頁

<script src="../../Scripts/MicrosoftMvcAjax.debug.js"type="text/javascript"></script> 
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script> 
<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script> 

以下行,但所有這似乎要做的就是調用動作並將結果呈現爲新頁面,而不是更新目標範圍。這裏有一些小截圖來說明發生了什麼。

Screenshot 1 http://martindoms.com/scr1.JPG

Screenshot 2 http://martindoms.com/scr2.JPG

任何想法?

回答

4

你的JavaScript包括在錯誤的順序你的母版頁。 重新排序,以便MicrosoftAjax.js包含在三個中的第一個,它將工作。

<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script> 
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script> 
0

只是拋出一些想法,有...

http://www.asp.net/learn/MVC/tutorial-33-cs.aspx

你的控制器動作在像這樣定義的類?

public class MyController : Controller 

顯然類的名稱與該字控制器結束。

+0

我使用默認的HomeController所以是的,它被稱爲HomeController並擴展了Controller。 – 2009-04-18 04:38:12

相關問題