如何获取执行操作方法的物理控制器类文件路径?

时间:2010-12-21 15:49:06

标签: asp.net asp.net-mvc asp.net-mvc-2

假设当前执行的操作方法是Home控制器中的Index()。从Index()内部,如何获取Home控制器的物理文件路径?假设我们在运行时之前不知道文件结构。

2 个答案:

答案 0 :(得分:3)

物理文件(Controller \ Home.cs)可能不存在,因为控制器被编译为.dll,按照惯例,存储在bin文件夹中。

如果是你想要的.dll,可能在bin文件夹中,或者在控制器中使用GetExecutingAssembly

您可以使用以下命令找到控制器的名称:

Request.RequestContext.RouteData.Values["controller"];

您可以将.cs文件的位置存储在Web.Config中,这足以找到它们。 (注意部分.cs文件)。

找到控制器方法将是下一步,因为找到具有正确名称的方法是不够的。您必须匹配参数和属性(HttpPost / ActionName)。

答案 1 :(得分:1)

这会有所帮助:Get the Assembly path C#