MVC 4 Jquery Datepicker在多个单独的线程上初始化

时间:2013-11-20 21:19:12

标签: jquery asp.net-mvc-4 jquery-ui-datepicker

我在AnyCPU网络应用程序中使用VS2010,带有Razor的MVC 4,JQuery 1.8 / JQueryUI 1.10.3和AJAX。我看到了奇怪的行为,JQueryUI datepicker的初始化在我控制之外的3-4个独立线程上运行。我发现这是因为应用程序在主布局中访问HttpContext.Current.Session,并且看起来每个'datepicker init threads'都引用或加载主布局,并且在其中一个线程上它抛出一个对象引用异常。

在Fiddler / Dev Tools上检查此请求并不会显示多个请求,尽管线程看起来有多个请求,因为主布局中呈现的部分是调用HttpContext.Current.Session的部分。

请注意,只有我使用datepicker控件的视图才有这种方式,所有其他视图都有一个线程,并且可以毫无问题地访问Session对象。

我使用各种渲染的部分嵌套布局视图,并包含捆绑/缩小的Jquery文件。

------------------
| master layout (only ref'd by secondary layout)
|
|   - bundled/min Jquery/JqueryUI js references
|   - rendered partial view that accesses HttpContext.Current.Session
|
|   ------------------
|   | secondary layout (only ref'd by View)
|   |
|   |   - Jquery with datepicker control init function (outside of document.ready)
|   |   
|   |   ------------------
|   |   | View
|   |   |
|   |   | - Jquery inside document.ready that calls datepicker control init function (included in secondary layout) based on values in this view's model
|   |
|

我尝试过以上的变体,包括将所有标记,js refs等放到一个页面上,它仍然表现相同。如果需要的话,我可以发布实际的代码,但是当我处于绑定状态时,我希望将其发布到那里。

0 个答案:

没有答案
相关问题