[JQUERY] 적절한 방법은 강력한 형식의 MVC 3보기에서 패스 모델에 JQuery와에 AJAX 포스트를 사용하는
JQUERY적절한 방법은 강력한 형식의 MVC 3보기에서 패스 모델에 JQuery와에 AJAX 포스트를 사용하는
해결법
-
1.당신은 var에 선언과 캐릭터 라인 화를 건너 뛸 수 있습니다. 그렇지 않으면, 그것은 잘 작동합니다.
당신은 var에 선언과 캐릭터 라인 화를 건너 뛸 수 있습니다. 그렇지 않으면, 그것은 잘 작동합니다.
$.ajax({ url: '/home/check', type: 'POST', data: { Address1: "423 Judy Road", Address2: "1001", City: "New York", State: "NY", ZipCode: "10301", Country: "USA" }, contentType: 'application/json; charset=utf-8', success: function (data) { alert(data.success); }, error: function () { alert("error"); } });
-
2.나는 이것을 구현하는 3 가지 방법을 발견 :
나는 이것을 구현하는 3 가지 방법을 발견 :
C # 클래스 :
public class AddressInfo { public string Address1 { get; set; } public string Address2 { get; set; } public string City { get; set; } public string State { get; set; } public string ZipCode { get; set; } public string Country { get; set; } }
동작:
[HttpPost] public ActionResult Check(AddressInfo addressInfo) { return Json(new { success = true }); }
자바 스크립트는 당신은 세 가지 방법으로 할 수 있습니다 :
1) 쿼리 문자열 :
$.ajax({ url: '/en/Home/Check', data: $('#form').serialize(), type: 'POST', });
데이터는 여기에 문자열입니다.
"주소 1 = 어쩌구 및 주소 2 = ㅋ & 시티 = 어쩌구 및 주 = 어쩌구 및 우편 번호 = ㅋ & 컨트리 = ㅋ"
2) 객체 배열 :
$.ajax({ url: '/en/Home/Check', data: $('#form').serializeArray(), type: 'POST', });
데이터는 현재 키 / 값 쌍의 어레이이다 :
=[{name: 'Address1', value: 'blah'}, {name: 'Address2', value: 'blah'}, {name: 'City', value: 'blah'}, {name: 'State', value: 'blah'}, {name: 'ZipCode', value: 'blah'}, {name: 'Country', value: 'blah'}]
3) JSON :
$.ajax({ url: '/en/Home/Check', data: JSON.stringify({ addressInfo:{//missing brackets Address1: $('#address1').val(), Address2: $('#address2').val(), City: $('#City').val(), State: $('#State').val(), ZipCode: $('#ZipCode').val()}}), type: 'POST', contentType: 'application/json; charset=utf-8' });
데이터는 여기에 연재 JSON 문자열입니다. 이름이 서버에서 매개 변수의 이름과 일치해야합니다!
='{"addressInfo":{"Address1":"blah","Address2":"blah","City":"blah","State":"blah", "ZipCode", "blah", "Country", "blah"}}'
-
3.이것은 나를 위해 일한 방법입니다 :
이것은 나를 위해 일한 방법입니다 :
$.post("/Controller/Action", $("#form").serialize(), function(json) { // handle response }, "json"); [HttpPost] public ActionResult TV(MyModel id) { return Json(new { success = true }); }
-
4.당신이해야하는 것은 괜찮습니다 - 그러나 일부 입력을 저장하려면, 당신은 단순히 데이터에 사용할 수있는
당신이해야하는 것은 괜찮습니다 - 그러나 일부 입력을 저장하려면, 당신은 단순히 데이터에 사용할 수있는
data: $('#formId').serialize()
자세한 내용은 http://www.ryancoughlin.com/2009/05/04/how-to-use-jquery-to-serialize-ajax-forms/를 참조 구문은 아주 기본적인 것입니다.
-
5.사용하는 경우 MVC (5)는이 솔루션을 읽을!
사용하는 경우 MVC (5)는이 솔루션을 읽을!
내가 특별히 MVC 3라는 질문을 알지만, MVC (5)이 페이지 우연히 내 상황에서 다른 사람을위한 솔루션을 게시하고 싶었다. 나는 위의 해결 방법을 시도하지만, 그들은 나를 위해 일을하지 않았다, 액션 필터에 도달하지 않았다 나는 이유를 알아낼 수 없었다. 내 프로젝트에 버전 5를 사용하여 다음과 같은 액션 필터 결국 오전 :
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Mvc.Filters; namespace SydHeller.Filters { public class ValidateJSONAntiForgeryHeader : FilterAttribute, IAuthorizationFilter { public void OnAuthorization(AuthorizationContext filterContext) { string clientToken = filterContext.RequestContext.HttpContext.Request.Headers.Get(KEY_NAME); if (clientToken == null) { throw new HttpAntiForgeryException(string.Format("Header does not contain {0}", KEY_NAME)); } string serverToken = filterContext.HttpContext.Request.Cookies.Get(KEY_NAME).Value; if (serverToken == null) { throw new HttpAntiForgeryException(string.Format("Cookies does not contain {0}", KEY_NAME)); } System.Web.Helpers.AntiForgery.Validate(serverToken, clientToken); } private const string KEY_NAME = "__RequestVerificationToken"; } }
- System.Web.Mvc를 사용하여 System.Web.Mvc.Filters의 만들기에 대 한 참고가 아닌 HTTP 라이브러리 (나는 그 것들 중 하나 MVC의 V5로 변경한다는 것입니다 생각합니다. -
그런 다음 당신의 행동 (또는 컨트롤러)에 필터 [ValidateJSONAntiForgeryHeader]를 적용하고 올바르게 호출되는 것이다.
BODY> 위의 내 레이아웃 페이지 오른쪽에서 나는) (@ AntiForgery.GetHtml있다;
마지막으로 다음과 같이, 내 면도기 페이지에, 나는 아약스 호출을 수행합니다
var formForgeryToken = $('input[name="__RequestVerificationToken"]').val(); $.ajax({ type: "POST", url: serviceURL, contentType: "application/json; charset=utf-8", dataType: "json", data: requestData, headers: { "__RequestVerificationToken": formForgeryToken }, success: crimeDataSuccessFunc, error: crimeDataErrorFunc });
from https://stackoverflow.com/questions/5980389/proper-way-to-use-ajax-post-in-jquery-to-pass-model-from-strongly-typed-mvc3-vie by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 다시로드하는 방법 / jQuery를의 요소 (이미지)를 새로 고침 (0) | 2020.10.12 |
---|---|
[JQUERY] 창 크기 조정에 jQuery를 (0) | 2020.10.11 |
[JQUERY] jQuery로 텍스트 영역에 텍스트를 삽입 (0) | 2020.10.11 |
[JQUERY] jQuery를는 .click - 패스 파라미터를 사용자 함수 (0) | 2020.10.11 |
[JQUERY] 있는 jqGrid 필요 하이퍼 링크 - jQuery를 통해 캡처 값 필요 (0) | 2020.10.11 |