2010-06-16 4 views
2

저는 MVC를 처음 접했습니다. 내가 제출 버튼을 클릭하면MVC2 Ajax 양식이 원하지 않는 페이지 새로 고침을합니다.

<div id="test"></div> 
<div id="MainChatMenu"> 
<% using (Ajax.BeginForm("SendMessage", "MainChat", new AjaxOptions { UpdateTargetId="test"})) 
{ %> 
    <input id="chatMessageText" type="text" maxlength="200" /> 
<input type="submit" value="Go"/> 
<% } %> 

지금, 페이지가 다시로드, goint/컨트롤러/액션을 mysite와는하기 : 여기 처음 아약스 양식이있다.Ajax.BeginForm의 기본 동작은 정확히 그렇게하지 않는다고 생각했습니다. 초보자는 어디입니까?

내 컨트롤러가 제대로 호출되지만 데이터 전달도 작동하지 않습니다. 아마도 같은 실수로 말인가?

public class MainChatController : Controller 
{ 
    [AcceptVerbs(HttpVerbs.Post)] 
    public EmptyResult SendMessage(FormCollection formValues) 
    { 
     return new EmptyResult(); 
    } 

} 

답변

3

당신이 필요한 스크립트 라이브러리를 포함했는지 확인하십시오 :

<script type="text/javascript" src="<%= Url.Content("~/scripts/MicrosoftAjax.js") %>"></script> 
<script type="text/javascript" src="<%= Url.Content("~/scripts/MicrosoftMvcAjax.js") %>"></script> 
+2

죄송합니다. 정말 초보자 질문이었습니다. 스크립트를 포함하여 수정했습니다! – Sparhawk

0
<% using (Ajax.BeginForm("SendMessage", "MainChat", new{}, new AjaxOptions { UpdateTargetId="test", HttpMethod="POST"})) %> 
+0

System.Web.Mvc.Ajax.AjaxOptions는 HttpMode에 대한 정의를 포함하지 않는 여기에 코드입니다. (존재하는) HttpMethod를 가져 가면 이전과 같은 동작을 보입니다. – Sparhawk

+0

AjaxOptions 이전에 새로운 {}이 있다는 것을 알고 계셨습니까? – Gregoire

+0

아니, 나는하지 않았다. "new {}"은 (는) 다음과 같아야합니다. routeValues. 왜 그렇게 달라야합니까? 내 작업에 HttpVerbs.Post 특성 값이 있고 실행됩니다 (중단 점이 발생했습니다). 따라서 "게시물"은 괜찮은 것 같습니다. – Sparhawk

관련 문제