我有一个MVC 5站点,使用共享的_Layout视图.在这个_Layout视图中,我将我的脚本渲染到底部,在正文之后.
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryui")
@*BootStrap must be loaded after JQuery UI in order to override the tooltip function*@
@Scripts.Render("~/bundles/bootstrap")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/Session")
Run Code Online (Sandbox Code Playgroud)
我现在的问题是,我想在每个页面中包含Session Bundle,除了我的登录页面.换句话说,我想仅将Session Bundle用于用户登录并且具有活动会话的页面.
如何在_Layout视图中检查此条件并有条件地渲染脚本渲染?
在其他页面中,我会在我的模型中添加一个bool字段,然后使用C#If构造只渲染Script部分,如果为true,但我的_Layout视图中没有模型.
我也使用自定义,非常简单的登录方法,所以我没有使用MVC5的Identity Framework.
编辑 我被建议使用Request对象
@if (Request.IsAuthenticated) { @Render...}
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为我使用自定义登录,这不适用于内置框架.我读到了这个领域是如何工作的,这里Request.IsAuthenticated如何工作?
问题仍未解决
我的项目设置
我有以下项目设置:
\program.jar
\images\logo.png
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我使用相对URL引用图像"images/logo.png"
.
问题
如果我在目录中使用以下命令运行此程序:
c:\projects\program_dir\bin\>java -jar program.jar
Run Code Online (Sandbox Code Playgroud)
然后一切正常,Java能够找到图像.
现在,我的问题是,我需要能够从不同的目录运行该程序.
c:\>java -jar c:\projects\program_dir\bin\program.jar
Run Code Online (Sandbox Code Playgroud)
程序已执行,但现在所有相对URL都不再有效.
我需要的
如何计算program.jar文件的执行主页,以便我可以将相对URL更改为绝对URL?