【发布时间】:2010-12-22 00:38:54
【问题描述】:
假设当前执行的动作方法是 Home 控制器中的 Index()。从Index()内部,如何获取Home控制器的物理文件路径?假设我们直到运行时才知道文件结构。
【问题讨论】:
-
@Rippo,我想这就是他的目标
-
@hunter,是的,我明白了...用于测试目的
标签: asp.net asp.net-mvc asp.net-mvc-2
假设当前执行的动作方法是 Home 控制器中的 Index()。从Index()内部,如何获取Home控制器的物理文件路径?假设我们直到运行时才知道文件结构。
【问题讨论】:
标签: asp.net asp.net-mvc asp.net-mvc-2
物理文件 (Controller\Home.cs) 可能不存在,因为控制器被编译成 .dll,并且按照惯例,存储在 bin 文件夹中。
如果是您想要的 .dll,可能在 bin 文件夹中,或者在控制器中使用 GetExecutingAssembly。
您可以使用以下命令找到控制器的名称:
Request.RequestContext.RouteData.Values["controller"];
您可以将 .cs 文件的位置存储在您的 Web.Config 中,这样就足以找到它们。 (注意部分 .cs 文件)。
下一步是找到控制器方法,因为找到一个具有正确名称的方法是不够的。您必须匹配参数和属性(HttpPost / ActionName)。
【讨论】:
这会有所帮助:Get the Assembly path C#
【讨论】: