- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个“无 session ” Controller ,其操作返回 JsonResult。我的客户端 Javascript 使用 Jquery ajax 通过 HTTP GET 调用此操作
[HttpGet]
public JsonResult Index()
{
....
// myResult has three properties of type bool, int and a string
var jsonResult = Json(myResult, "application/json", JsonRequestBehavior.AllowGet);
return jsonResult;
}
该代码被执行,并且我已经验证了 OnResultExecuted
被调用,没有任何异常。
客户端JS
xhrNotification = $.ajax({
url: '/MyController/', // default action
type: 'get',
dataType: 'json',
cache: false,
async: true,
success: function (n, timeout, message) {
},
error: function (data) {
}
});
但是 jsonResult 只是偶尔到达客户端。我一直在使用 Fiddler 观察请求/响应。即使执行了我的操作,HTTP 请求也没有响应。我正在 Visual Studio 2010 下开发这个。
感谢任何帮助。
编辑:在进一步调试时,我发现执行操作后引发了异常
System.Net.Sockets.SocketException occurred
Message=An established connection was aborted by the software in your host machine
Source=System
ErrorCode=10053
NativeErrorCode=10053
StackTrace:
at System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
部分堆栈跟踪如下
System.dll!System.Net.Sockets.Socket.Send(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags) + 0x5a bytes
WebDev.WebHost40.dll!Microsoft.VisualStudio.WebHost.Connection.WriteBody(byte[] data, int offset, int length) + 0x40 bytes
[Appdomain Transition]
> WebDev.WebHost40.dll!Microsoft.VisualStudio.WebHost.Request.FlushResponse(bool finalFlush) + 0x128 bytes
System.Web.dll!System.Web.HttpResponse.Flush(bool finalFlush) + 0x4cb bytes
System.Web.dll!System.Web.HttpRuntime.FinishRequest(System.Web.HttpWorkerRequest wr, System.Web.HttpContext context, System.Exception e) + 0x80 bytes
System.Web.dll!System.Web.HttpRuntime.OnHandlerCompletion(System.IAsyncResult ar) + 0xa6 bytes
System.Web.dll!System.Web.HttpAsyncResult.Complete(bool synchronous, object result, System.Exception error, System.Web.RequestNotificationStatus status) + 0x3e bytes
System.Web.dll!System.Web.HttpApplication.ApplicationStepManager.ResumeSteps(System.Exception error) + 0x25e bytes
System.Web.dll!System.Web.HttpApplication.ResumeStepsFromThreadPoolThread(System.Exception error) + 0x28 bytes
System.Web.dll!System.Web.HttpApplication.CallHandlerExecutionStep.OnAsyncHandlerCompletion(System.IAsyncResult ar) + 0x183 bytes
System.Web.Mvc.dll!System.Web.Mvc.Async.AsyncUtil.WrapCallbackForSynchronizedExecution.AnonymousMethod__1() + 0x14 bytes
System.Web.Mvc.dll!System.Web.Mvc.Async.SynchronizationContextUtil.Sync.AnonymousMethod__3() + 0x16 bytes
System.Web.Mvc.dll!System.Web.Mvc.Async.SynchronizationContextUtil.Sync<System.Web.Mvc.Async.AsyncVoid>.AnonymousMethod__0(object o) + 0x32 bytes
System.Web.dll!System.Web.AspNetSynchronizationContext.CallCallbackPossiblyUnderLock(System.Threading.SendOrPostCallback callback, object state) + 0x4a bytes
System.Web.dll!System.Web.AspNetSynchronizationContext.CallCallback(System.Threading.SendOrPostCallback callback, object state) + 0x5f bytes
System.Web.dll!System.Web.AspNetSynchronizationContext.Send(System.Threading.SendOrPostCallback callback, object state) + 0x9 bytes
System.Web.Mvc.dll!System.Web.Mvc.Async.SynchronizationContextUtil.Sync<System.Web.Mvc.Async.AsyncVoid>(System.Threading.SynchronizationContext syncContext, System.Func<System.Web.Mvc.Async.AsyncVoid> func) + 0x58 bytes
System.Web.Mvc.dll!System.Web.Mvc.Async.SynchronizationContextUtil.Sync(System.Threading.SynchronizationContext syncContext, System.Action action) + 0x46 bytes
System.Web.Mvc.dll!System.Web.Mvc.Async.AsyncUtil.WrapCallbackForSynchronizedExecution.AnonymousMethod__0(System.IAsyncResult asyncResult) + 0x6f bytes
System.Web.Mvc.dll!System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult<System.Web.Mvc.Async.AsyncVoid>.ExecuteAsynchronousCallback(bool timedOut) + 0x37 bytes
System.Web.Mvc.dll!System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult<System.Web.Mvc.Async.AsyncVoid>.HandleAsynchronousCompletion(System.IAsyncResult asyncResult) + 0x1e bytes
System.Web.Mvc.dll!System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult<System.Web.Mvc.Async.AsyncVoid>.ExecuteAsynchronousCallback(bool timedOut) + 0x37 bytes
System.Web.Mvc.dll!System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult<System.Web.Mvc.Async.AsyncVoid>.HandleAsynchronousCompletion(System.IAsyncResult asyncResult) + 0x1e bytes
System.Web.Mvc.dll!System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult<System.Web.Mvc.Async.AsyncVoid>.ExecuteAsynchronousCallback(bool timedOut) + 0x37 bytes
System.Web.Mvc.dll!System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult<System.Web.Mvc.Async.AsyncVoid>.HandleAsynchronousCompletion(System.IAsyncResult asyncResult) + 0x1e bytes
System.Web.Mvc.dll!System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult<bool>.ExecuteAsynchronousCallback(bool timedOut) + 0x37 bytes
System.Web.Mvc.dll!System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult<bool>.HandleAsynchronousCompletion(System.IAsyncResult asyncResult) + 0x1e bytes
最佳答案
尝试使用此调用,看看会发生什么:(可能需要确保将类型设置为“GET”,而不是“get”)
$.ajax({
type: "GET",
dataType: "json",
contentType: "application/json; charset=utf-8",
url: '/MyController/',
success: function (data) {
},
error: function(e) {
},
complete: function () {
}
});
此外,您可能只想在 Controller 中执行此操作:
return Json(myResult, JsonRequestBehavior.AllowGet);
关于jquery - 即使 OnResultExecuted 成功调用后,JsonResult 也未返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9413923/
我正在创建一个自定义 ActionFilterAttribute为了转型ViewResult s 并重定向到 JsonResult s 在 ajax 请求期间。我已经通过单元测试连接了大部分内容,出于
我正在尝试创建一个自定义 ActionFilter,它将在执行操作结果之前运行。此属性将获取存储在 TempData 中的错误信息,并将其插入到主强类型模型中的子模型 (ErrorModel) 中。但
OnActionExecuted 和 OnResultExecuting 有什么区别?一旦处理完 Action ,它们会立即被解雇,还是在这两种方法之间发生某些事情。就像 View 引擎的初始化一样,
我有一个“无 session ” Controller ,其操作返回 JsonResult。我的客户端 Javascript 使用 Jquery ajax 通过 HTTP GET 调用此操作 [Htt
我有一个应用了属性的 Controller 操作,如果 ModelState 有错误,它会将它们设置为 OnResultExecuting 方法中的 JsonResult。 我在 MyAction 中
我有一个全局 NoCache 过滤器,如下所示:https://stackoverflow.com/a/12964123/78739 这个全局无缓存过滤器适用于所有操作。我有一个案例,我需要允许使用
简单的问题。如何覆盖 Controller 中的 OnResultExecuting 方法并强制使用不同的 ActionResult? 示例代码如下。目前,原始的 ActionResutl 继续执行,
我需要仅过滤 Controller 操作中具有返回类型 ActionResult 的所有操作中的方法。我从以下获取 Controller 名称和操作名称.. string originControll
这个问题在这里已经有了答案: How to disable a global filter in ASP.Net MVC selectively (7 个答案) 关闭 4 年前。 我正在开发一个 M
我正在寻找 OnActionExecuting 之间的比较和 OnResultExecuting . 什么时候应该与 OnActionExecuting 一起工作,以及与 OnResultExecut
ASP.NET MVC:在ActionFilterAttribute类中,OnActionExecuted和OnResultExecuted有什么区别?实现压缩过滤器时,压缩代码应该放在哪些方法中?
我是一名优秀的程序员,十分优秀!