ASP.NET MVC에서 AJAX 양식 제출물을 어떻게 얻습니까?
-
11-09-2019 - |
문제
나는 Ajax와 JavaScript 세계에 매우 익숙하지 않고 구현하려고 노력하고 있습니다. Scott Hanselman 's 페이지의 일부를 업데이트하기위한 양식 제출의 예. 나는 그의 예제를 거의 단어로 복사했으며 그것을 작동시키는 것 같지 않습니다. 제출 버튼을 클릭하면 컨트롤러 작업이 성공적으로 호출되지만 결과는 AJAX 양식에 지정된 스팬 만 업데이트하는 대신 브라우저에서 새 페이지로 렌더링됩니다.
내보기 코드는 다음과 같습니다.
<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>
그러나 대상 범위를 업데이트하는 대신 작업을 호출하고 결과를 새 페이지로 렌더링하는 것입니다. 다음은 무슨 일이 일어나고 있는지 설명하기위한 작은 스크린 샷입니다.
스크린 샷 1 http://martindoms.com/scr1.jpg
스크린 샷 2 http://martindoms.com/scr2.jpg
어떤 아이디어?
해결책
마스터 페이지에 잘못된 순서로 JavaScript가 포함되어 있습니다. Microsoftajax.js가 세 가지 중 첫 번째로 포함되도록 재주문하면 작동합니다.
<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
다른 팁
그냥 거기에 아이디어를 던져 ...
http://www.asp.net/learn/mvc/tutorial-33-cs.aspx
컨트롤러 동작이 그렇게 정의 된 클래스에 있습니까?
public class MyController : Controller
분명히 클래스의 이름은 단어 컨트롤러로 끝나야합니다.
제휴하지 않습니다 StackOverflow