我在我正在建立的博客上使用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) 在我的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)
并且我希望能够在引用该语言/文化之前检查该视图是否存在。
任何建议将不胜感激。
谢谢。