에서 .aspx 페이지 JSON 객체를 수락하지 :MVC 4 아약스 쿼리는 컨트롤러에서
<script type="text/javascript">
$(document).ready(function()
{
$('********').click(function (id)
{
var test = "test";
$.ajax(
{
type: "POST",
url: "*************",
data: { type: test },
dataType: "string",
success: function (data) { show(data); },
failure: function() { alert("Failed"); }
});
});
});
function show(data)
{
alert("Worked");
}
</script>
컨트롤러 기능 : 나는 주위의 코드에서 물건의 이름을 변경하지만, 어쨌든
[HttpPost]
public ActionResult getTest(String type)
{
List<Test> test = new List<Test>();
SqlConnection con = new SqlConnection("*****************");
SqlCommand cmd = new SqlCommand("****************");
cmd.Connection = con;
cmd.Connection.Open();
SqlDataReader reader = cmd.ExecuteReader();
int i = 0;
while (reader.Read())
{
test.Add(new Test{ itemName = reader.GetString(0),
itemType = reader.GetString(1),
itemClass = reader.GetString(2),
imageURL = reader.GetString(3)});
}
var test = Json(test, JsonRequestBehavior.AllowGet);
return test;
}
웹 사이트를 실행하고 div를 클릭하면 컨트롤러에 연결하고 올바른 json 객체를 반환합니다 (반환 선에 중단 점을 넣어서 어떤 테스트가 채워 졌는지 확인합니다). 아무 것도 웹 페이지로 돌아 가지 않습니다. 웹 브라우저 디버거에서는 ajax 함수에 중단 점을 넣었지만 그 점은 맞았지만 계속해서 성공하면 show 함수에 중단 점에 도달하지 않습니다. 또한 경고 ("오류")도 표시되지 않으며 데이터를 가져 오거나 URL을 변경하면 오류 경고가 표시됩니다.
내가 시도 할 것들 ... JsonResult에 컨트롤러 유형 변경
- 컨트롤러 반환 같은 일을하지만, 결코 다시 페이지에 가져옵니다.
ajax 함수에 contentType을 추가하려고 시도 했으므로 컨트롤러가 호출되지 않습니다. 어떤 값을 입력했는지 상관없이 "application/json; charset = utf-8"< -이 것은 작동하지 않습니다.
그냥 성공을 표시 한 아약스의 속기 버전을 사용해 보겠습니다.
시도해 보았습니다 ... 또한 데이터 유형을 "json"으로 변경하려고 시도했지만 컨트롤러가 여전히 작동하지만 반환 값이 ajax 함수에 전달되지 않습니다. – ChumpStick
이제 웹 브라우저의 콘솔을 확인하십시오. 어떤 오류라도 보셨습니까? –
도 no no errors를 생성하지 않습니다. – ChumpStick