문제

나는 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

분명히 클래스의 이름은 단어 컨트롤러로 끝나야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top