- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前有一个 .net mvc3 应用程序,负责管理多个位置中的类似 View ,这些 View 也使用相同的 Controller ,例如 site1/v1/views/index.cshtml
和 site1/v2/views/index.cshtml
。
处理此问题的方法是创建一个继承自 DefaultControllerFactory 的 CustomControllerFactory,并在 CreateController 方法中清除现有 View 引擎并添加一个新的自定义 viewEngine,该 View 引擎根据当前 url 指定 View 位置格式。
如果用户登陆site1.com/v1/index.cshtml
, View 引擎将指定以下 View 位置:
string versionDirectory = "v1";
ViewLocationFormats = new[]{ versionDirectory + "/Views/{0}.cshtml",
"/Views/{0}.cshtml",
"~/Shared/{0}.cshtml"
};
我遇到的问题是,如果多个用户大致同时登陆不同的页面,所有用户都会看到相同的 View 。
Initially i thought this was related to caching ,但是在自定义 viewEngine 中显式设置 usecache = false
后,这似乎与 ViewEngines class not being thread safe 有更多关系。 。
有人知道如何以不同的方式实现相同的结果吗?
提前致谢。
最佳答案
ViewEngines 集合是一个静态集合,因此它的值在请求之间共享。您尝试做的事情是可能的,但您这样做的方式不正确。
一种简单的方法是编写一个派生自 RazorViewEngine 的自定义 View 引擎并重写 FindView 方法。每个请求都会调用该方法一次。在您的实现中,调用 base.FindView,然后修改结果(如果它不为空)以包含您需要的站点信息。
Scott Hanselman 有一篇博客文章,展示了通过自定义 View 引擎在另一个位置查找 View 的示例。 http://www.hanselman.com/blog/ABetterASPNETMVCMobileDeviceCapabilitiesViewEngine.aspx
关于asp.net-mvc - MVC Razor ViewEngine 不是线程安全的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5047172/
我有一个内部开发的自定义 View 引擎。在同一个项目中,我想对某些页面使用 Razor,对某些页面使用我的自定义引擎。 MVC 框架如何选择使用哪个引擎?顺便说一句,我的自定义引擎不需要任何模板,它
如何输入有关错误的详细信息? 我正在尝试设置 customErrors mode至 On/Off ,但我只有:Sorry, an error occurred while processing you
嘿,我正在使用 mvc 我必须为包含的函数编写单元测试 var result = ViewEngines.Engines.FindPartialView(context, partialPath);
在 Razor ViewEngine 中调用 Parse 方法时,编译错误将作为包含错误列表的 TemplateComplilationException 抛出。这些错误涉及临时文件名,但文件在您可以
有谁知道 _ViewStart.cshtml 不会被 MVC 3 中的自定义 ViewEngine 选中是否有原因? 我的观点现在住在 ~\用户界面\ View \ ~\UI\Views\Shared
我正在尝试对具有 controllercontext 参数和更多发送电子邮件的 void 方法进行单元测试。电子邮件模板使用 View 引擎呈现部分 View 。我 mock 了controllerc
我目前有一个 .net mvc3 应用程序,负责管理多个位置中的类似 View ,这些 View 也使用相同的 Controller ,例如 site1/v1/views/index.cshtml 和
我编写了一个测试 ViewEngine,它以 View 名称“About”响应请求,并将以下内容添加到 Application_Start Global.asax 中的方法. ViewEngines.
我正在使用带有 Razor View 的 Nancy 0.14.1.0。只要我在 VS 2010 中使用内部 Web 服务器,事情就会进展顺利。现在我已将这些内容部署到运行 IIS 6 的 Web 服
刚刚遇到了 Glimpse 工具 (getglimpse.com) 并想在我的 Spark 支持的站点(VS2010、MVC3)上试用它,但在第一个障碍中解脱了。当我运行我的网站时,我收到以下错误:
昨晚我在想 asp.net mvc 中有不同的 View 引擎; Spark Web Forms Razor (我知道它们在句法上也有所不同但是) 它们会影响 asp.net mvc 项目的性能吗?
我正在关注 Chris Pietschmann 的 solution for theming in ASP.NET MVC . 我注意到的一件事是,在后续请求中不会从 ViewLocationCach
我最近对我的 mvc 应用程序进行了一些重构,并意识到返回了很多静态 View 。我决定创建一个 Controller ,它返回静态 View (如果存在),并在 View 不存在时抛出 404 错误
我知道这个问题是在一个月前提出的,但从未得到回答。我的程序正常启动,但在返回 View["Index", blogPost] 后找不到 Index.cshtml 并引发异常。 Get["/"] = p
我的 MVC 站点中有一个 Area。该区域具有典型的 Controller /模型/ View 设置。 作为 Controller ,我有以下代码: public class DocumentCre
我想(单元)测试函数 System.Web.Mvc.ViewEngines.Engines.FindPartialView 并检查 HTML 代码是否正确返回。 但是每次我开始单元测试时,它都会抛出一
这个问题已经有答案了: asp.net mvc: why is Html.CheckBox generating an additional hidden input (13 个回答) 已关闭 5 年
我正在为 asp.net mvc 的自定义 View 引擎寻找最简单的解决方案。所以我可以越过路径来寻找 View 。 实际上,我正在尝试在我的解决方案中构建一个主题系统。我查看了网络,但找到了难以学
有没有人在 OpenRasta 框架中使用过 Spark 或 Razor View 引擎? 或者除了在 WebForms 中构建之外的 View 引擎有什么建议? 最佳答案 对 OpenRasta 的
遇到此处描述的问题 https://github.com/NancyFx/Nancy/issues/1528 具体来说,即使我按照我所理解的正确配置包括了 Razor View Engine,它也并不
我是一名优秀的程序员,十分优秀!