Câu trả lời:
Tất cả các lệnh gọi AJAX do jQuery thực hiện sẽ có thêm tiêu đề để cho biết đó là AJAX. Tiêu đề cần kiểm tra là X-Requested-With
và giá trị sẽ là XMLHttpRequest
khi nó là một cuộc gọi AJAX.
Lưu ý rằng các yêu cầu AJAX là GET hoặc POST thông thường, vì vậy trừ khi bạn (hoặc thư viện AJAX của bạn như jQuery) đang thêm một tiêu đề bổ sung trong yêu cầu, không có cách nào để biết chắc chắn đó có phải là AJAX hay không.
Request.Headers["X-Requested-With"]
hoặc tương tự. Kiểm tra MSDN. Tiêu đề luôn liên quan đến các yêu cầu.
Ngoài ra còn có Request.IsAjaxRequest
nếu bạn đang sử dụng phiên bản MVC mới hơn. Tôi không có phiên bản 1 nữa nên tôi không thể nói nó có ở phiên bản 1 hay không.
Nếu bạn cần kiểm tra này trong Global.asax.cs, hãy thử điều này:
new HttpRequestWrapper(Request).IsAjaxRequest()
HttpRequestBase
. Tôi không có nhu cầu về điều đó nên tôi không nhìn quá sâu. Cảm ơn cho những người đứng đầu lên.
Nó hoạt động cho tôi trong ASP.NET MVC 3
if (Request.IsAjaxRequest())
{
// ajax request handled
}
new HttpRequestWrapper(Request).IsAjaxRequest()