2014-12-27 2 views
2

Ajax를 통해 C# 파일로 데이터를 보내고 싶지만 수신 된 데이터를 확인하면 null이됩니다. 내 코드에 문제가 있습니까?C# - Ajax 데이터 얻기

자바 스크립트 파일 데이터 (save.cshtml)를 수신

$(".save").click(function() { 
    var ss = "Helloo!"; 
    $.ajax({ 
     type: "POST", 
     url: "/Notes/save.cshtml", 
     global: true, 
     data: {fofo: ss}, 
     processData: false, 
     contentType: false, 
     cache: false, 
     success: function(data){ 
    console.log(data); 
}, 
     error: function (req, status, error) { 
      alert("There was a problem with the server. Try refreshing the page."); 
      return false; 
     } 
    }); 
}); 

C#을 파일

@{ 
    var s = Request.Form["fofo"]; 
var result = ""; 
    var userData = s; 

    var dataFile = Server.MapPath("~/Notes/lolo.txt"); 
    File.WriteAllText(@dataFile, s); 
    result = "Information saved."; 
} 
@if(result != ""){ 
    <p>Result: @result, @s</p> 

} 
+0

이 한 형태이다? 그렇다면'.save'가 type = submit 인 경우 기본 제출을 막아야합니다. – charlietfl

답변

1

당신은 당신의 AJAX 기능에 다시 response를 전송하지 않습니다. 당신이하는 일이 표준이 아닌 것뿐 아니라 MVC입니다. 서버 측의 파일에 데이터를 저장 한 Controller을 누른 다음 JsonResult을 사용하여 결과를 다시 보내야합니다. 예를 들어

:

public JsonResult SaveNotes() 
{ 
    // Code to save file here 

    // Return the response 
    return Json({NotesSaved = true}); 
} 

는 그런 다음 JavaScript AJAX 성공 객체에서 당신은 true로 설정 NotesSaved 개체를해야합니다.

참고 : 당신은 또한 같은에 AJAX 명령에 URL 매개 변수를 변경해야합니다

url: '@Url.Action("SaveNotes")' 
+1

외부 js 파일을 사용하는 경우 마지막 부분은 작동하지 않습니다. – charlietfl

+0

@charlietfl - 사실입니다. 그는 정적 문자열을 사용하거나 전역 개체. 이 내용을 포함하도록 답변을 업데이트하겠습니다. 요점은 컨트롤러를 통과해야한다는 것입니다. –