2010-05-21 52 views
1

我在ASP.NET MVC中有一个控件,它在页面页眉(在视图页面)中吐出JavaScript。我从当前视图名称(包括其案例)中推导出一些值。假设我们正在谈论路径:/ Home/Index - 我的控件吐出JavaScript来调用具有视图名称的函数 - 在其确切的情况下 - 例如someFunction( '索引')。现在,当我尝试使用'/ home/index'导航到我的视图时,视图名称作为'index'返回,这导致了JavaScript中的问题,因为我依赖于JS端的框架。如何在asp.net mvc中查找确切的视图名称(包括案例)

有没有什么办法从映射到这个视图的路径中知道确切的视图名称(如定义的那样)。

+0

请参阅:[检索当前视图名称在ASP.NET MVC?](http://stackoverflow.com/questions/1268763/retrieve-the-current-view-name-in -asp-net-mvc) – 2010-05-21 04:13:56

+0

这并不保留这种情况。返回的名称是键入的名称,而不是它在项目中的名称。 :-( – 2010-05-21 04:23:57

+0

然后使用上面的技术,通过文件和文件夹进行递归搜索来找到一个匹配名称的文件 – 2010-05-21 08:22:23

回答

0

你有没有想过使用一个自定义的ViewFactory存储视图名称的地方,你可以检索它?这样的事情:

public class MyViewFactory : WebFormViewEngine 
{ 
    public override ViewEngineResult FindView(
     ControllerContext controllerContext, 
     string viewName, 
     string masterName, 
     bool useCache 
     ) 
    { 
     controllerContext.Controller.ViewData["viewname"] = viewName; 
     return base.FindView(controllerContext, viewName, masterName, useCache); 
    } 
} 
相关问题