데이터베이스에서 일부 작업을 수행 한 다음 끝나면 종료되는 컨트롤러 동작이 있습니다. 이 작업은 dataType이 'json'으로 설정된 jQuery의 ajax 함수를 통해 호출됩니다.ASP.NET MVC - 반환 개체가없는 Ajax 작업을 처리하는 올바른 방법
조치의 반환 유형을 무효로 설정하면 Firefox에서 "요소를 찾을 수 없습니다"라는 오류 메시지가 콘솔에 표시되는 것을 제외하면 모든 것이 올바르게 작동합니다.
Firefox가 XML이 돌아올 것으로 예상하는 경우이 오류가 발생합니다. 그러나 "text"아약스 호출의 dataType 속성을 변경할 때도 여전히 오류가 나타납니다. 리턴 유형 void에 대한 오류를 없애기 위해 응답의 ContentType을 "text/html"로 설정해야합니다. 또는 반환 형식을 JsonResult로 설정하고 새 [empty] JsonResult 개체를 반환 할 수 있습니다.
나는이 오류를 없앨 수있는 몇 가지 방법이있을 것이라고 확신하지만, 아약스를 통해 호출되는 반환 값이없는 작업을 처리하는 적절한 방법을 알고 싶습니다.
중요한 점은 비동기 컨트롤러 동작 패턴을 사용하고 있습니다.
public void DoSomethingAsync(SomeJsonObjectForModelBinding model)
{
// do some database things
}
public void DoSomethingCompleted()
{
// nothing to do...
// what should my return type be?
// do I need to set the content type here?
}
항상 성공 또는 오류를 반환하기 위해 +1, js 작동 방식에서 정말로 필요합니다. –
나는 이것이 당신에게 무엇을 사는지 알지 못합니다. http 상태는 항상 서버에 의해 반환됩니다. * 당신은 그것이 결코 읽혀지지 않을 것이라는 것을 알고있을지라도 jsoning json serialized 된 데이터를 클라이언트에게 옹호하고 있습니다. 점은 무엇인가? – fearofawhackplanet
음, 시스템 수준의 피드백이 있으며 응용 프로그램 수준의 피드백이 있습니다. AJAX를 성공적으로 실행할 수는 있지만 응용 프로그램 내에서 서버 측에서 문제가 발생했는지는 알 수 없습니다. – Kon