asp.net 의 컨트롤러에 단순 Ajax 호출하기 mvc
ASP.NET MVC Ajax 호출을 시작하려고 합니다.
컨트롤러:
public class AjaxTestController : Controller
{
//
// GET: /AjaxTest/
public ActionResult Index()
{
return View();
}
public ActionResult FirstAjax()
{
return Json("chamara", JsonRequestBehavior.AllowGet);
}
}
보기:
<head runat="server">
<title>FirstAjax</title>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
var serviceURL = '/AjaxTest/FirstAjax';
$.ajax({
type: "POST",
url: serviceURL,
data: param = "",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: successFunc,
error: errorFunc
});
function successFunc(data, status) {
alert(data);
}
function errorFunc() {
alert('error');
}
});
</script>
</head>
컨트롤러 방식으로 데이터를 반환하는 알림을 출력하면 됩니다.위의 코드는 내 보기에 "차마라"를 인쇄하면 됩니다.경고가 발생하지 않습니다.
갱신하다
나는 아래와 같이 컨트롤러를 수정했고 작동하기 시작했습니다.왜 지금은 작동하는지 잘 모르겠습니다.누가 설명 좀 해주세요.매개 변수 "a"는 관련이 없습니다. 동일한 메서드 이름과 매개 변수를 가진 두 메서드를 추가할 수 없기 때문에 추가했습니다.이것이 해결책은 아닐 수도 있지만 효과가 있다고 생각합니다.
public class AjaxTestController : Controller
{
//
// GET: /AjaxTest/
[HttpGet]
public ActionResult FirstAjax()
{
return View();
}
[HttpPost]
public ActionResult FirstAjax(string a)
{
return Json("chamara", JsonRequestBehavior.AllowGet);
}
}
그렇지 않은 경우 데이터 특성 제거POSTING
서버에 대한 임의의 항목(컨트롤러는 매개 변수를 필요로 하지 않습니다).
그리고 당신의 AJAX 방법에서 당신은 사용할 수 있습니다.Razor
및 사용@Url.Action
정적 문자열 대신:
$.ajax({
url: '@Url.Action("FirstAjax", "AjaxTest")',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: successFunc,
error: errorFunc
});
업데이트에서:
$.ajax({
type: "POST",
url: '@Url.Action("FirstAjax", "AjaxTest")',
contentType: "application/json; charset=utf-8",
data: { a: "testing" },
dataType: "json",
success: function() { alert('Success'); },
error: errorFunc
});
업데이트를 완료한 후,
- 기본 HttpGet 요청으로 FirstAjax 작업을 처음 호출하고 빈 Html 보기를 렌더링합니다. (이전에는 사용하지 않았습니다.)
- 나중에 해당 보기의 DOM 요소를 로드하면 Ajax 호출이 실행되고 경고가 표시됩니다.
이전에는 HTML을 렌더링하지 않고 JSON만 브라우저로 되돌렸습니다.이제 JSON 데이터를 가져올 수 있는 HTML 보기가 렌더링됩니다.
당신은 JSON의 일반 데이터를 HTML이 아닌 것으로 직접 렌더링할 수 없습니다.
레이저를 사용하여 다음과 같은 작업을 호출하여 URL을 동적으로 변경합니다.
$.ajax({
type: "POST",
url: '@Url.Action("ActionName", "ControllerName")',
contentType: "application/json; charset=utf-8",
data: { data: "yourdata" },
dataType: "json",
success: function(recData) { alert('Success'); },
error: function() { alert('A error'); }
});
Ajax 콜에서 C# Method를 클릭하기만 하면 되는 경우, 요청을 받은 경우 두 가지 문제 유형과 URL만 전달하면 됩니다. URL만 지정하면 됩니다. 아래 코드를 따르십시오. 정상적으로 작동합니다.
C# 코드:
[HttpGet]
public ActionResult FirstAjax()
{
return Json("chamara", JsonRequestBehavior.AllowGet);
}
요청을 받은 경우 Java 스크립트 코드
$.ajax({
url: 'home/FirstAjax',
success: function(responce){ alert(responce.data)},
error: function(responce){ alert(responce.data)}
});
요청 후 Java 스크립트 코드 및 [HttpGet]에서 [HttpPost]로
$.ajax({
url: 'home/FirstAjax',
type:'POST',
success: function(responce){ alert(responce)},
error: function(responce){ alert(responce)}
});
참고: View 컨트롤러와 동일한 컨트롤러에서 FirstAjax를 사용하는 경우 url에 컨트롤러 이름이 필요하지 않습니다.맘에 들다url: 'FirstAjax',
우선 한 페이지에 두 가지 다른 버전의 jquery 라이브러리를 둘 필요가 없으며, "1.9.1" 또는 "2.0.0"은 Ajax 호출을 작동시키기에 충분합니다.
컨트롤러 코드는 다음과 같습니다.
public ActionResult Index()
{
return View();
}
public ActionResult FirstAjax(string a)
{
return Json("chamara", JsonRequestBehavior.AllowGet);
}
보기의 모양은 다음과 같습니다.
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
var a = "Test";
$.ajax({
url: "../../Home/FirstAjax",
type: "GET",
data: { a : a },
success: function (response) {
alert(response);
},
error: function (response) {
alert(response);
}
});
});
</script>
업데이트 질문을 위한 것입니다.
이름과 서명이 같은 두 메서드를 가질 수 없으므로 ActionName 특성을 사용해야 합니다.
업데이트:
[HttpGet]
public ActionResult FirstAjax()
{
Some Code--Some Code---Some Code
return View();
}
[HttpPost]
[ActionName("FirstAjax")]
public ActionResult FirstAjaxPost()
{
Some Code--Some Code---Some Code
return View();
}
그리고 메소드가 액션이 되는 방법에 대한 추가 참조를 위해 이 링크를 참조하십시오.하지만 매우 좋은 참고 자료입니다.
보기;
$.ajax({
type: 'GET',
cache: false,
url: '/Login/Method',
dataType: 'json',
data: { },
error: function () {
},
success: function (result) {
alert("success")
}
});
컨트롤러 방법
public JsonResult Method()
{
return Json(new JsonResult()
{
Data = "Result"
}, JsonRequestBehavior.AllowGet);
}
에 url: serviceURL,
사용하다
url: '<%= serviceURL%>',
successFunc에 2개의 매개 변수를 전달하고 있습니까?
function successFunc(data)
{
alert(data);
}
global.asax에 "JsonValueProviderFactory"를 추가합니다.
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
ValueProviderFactories.Factories.Add(new JsonValueProviderFactory());
}
언급URL : https://stackoverflow.com/questions/16186083/making-a-simple-ajax-call-to-controller-in-asp-net-mvc
'programing' 카테고리의 다른 글
Spring-data-mongodb는 하나의 Mongo 인스턴스에서 여러 데이터베이스에 연결합니다. (0) | 2023.07.05 |
---|---|
SELECT 문에서 to_date 예외를 처리하여 해당 행을 무시하는 방법은 무엇입니까? (0) | 2023.07.05 |
Git 분기: 마스터 대 오리진/마스터 대 원격/오리진/마스터 (0) | 2023.07.05 |
ORA-01654: 인덱스를 확장할 수 없습니다. (0) | 2023.07.05 |
mongo DB에 Java 8 LocalDate 저장 (0) | 2023.07.05 |