相关疑难解决方法(0)

如何在MVC 3中获取当前页面URL

我在我正在建立的博客上使用Facebook评论插件.它有一些FBXML标记,由页面上引用的facebook javascript解释.

这一切都很好,但我必须将当前的,完全限定的URL传递给插件.

<div style="width: 900px; margin: auto;">
    <div id="fb-root"></div>
    <fb:comments href="URL HERE" num_posts="10" width="900"></fb:comments>
</div>
Run Code Online (Sandbox Code Playgroud)

获取当前页面的URL的最佳方法是什么?请求URL.

这是我的解决方案的最终代码:

<fb:comments href="@Request.Url.AbsoluteUri" num_posts="15" width="900"></fb:comments>
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-mvc razor

354
推荐指数
6
解决办法
39万
查看次数

渲染之前从MVC控制器修改视图路径

在我的MVC 4 Controller中,我想重写View()方法

ViewResult View(string viewName, string masterName, object model) {}
Run Code Online (Sandbox Code Playgroud)

这样我就可以操纵由action方法渲染的视图。为此,我希望能够获取视图文件的物理路径。我尝试了以下方法:

string viewName = this.ControllerContext.RouteData.Route
   .GetVirtualPath(this.ControllerContext.RequestContext, null)
   .VirtualPath;
Run Code Online (Sandbox Code Playgroud)

例如,当我真正希望它返回的内容是这样时,它可能返回“ / Errors / MissingParameters”:

"~/Views/Errors/MissingParameters"
Run Code Online (Sandbox Code Playgroud)

或者,甚至更好:

"~/Views/Errors/MissingParameters.cshtml"
Run Code Online (Sandbox Code Playgroud)

为了增加复杂性,我还需要它来应对Areas,因此,如果我在名为“ Surveys”的Area中运行了相同的示例,则希望它返回类似以下内容的内容:

"~/Areas/Surveys/Views/Errors/MissingParameters"
Run Code Online (Sandbox Code Playgroud)

我要这样做的原因是我正在尝试使用视图进行全球化,因此我可能有两个视图:

"~/Views/Errors/MissingParameters.cshtml"        // default view (en-GB)
"~/Views/Errors/MissingParameters_de-DE.cshtml"  // German view (de-DE)
Run Code Online (Sandbox Code Playgroud)

并且我希望能够在引用该语言/文化之前检查该视图是否存在。

任何建议将不胜感激。

谢谢。

asp.net-mvc-4

0
推荐指数
1
解决办法
4049
查看次数

标签 统计

asp.net ×1

asp.net-mvc ×1

asp.net-mvc-4 ×1

c# ×1

razor ×1