Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何获取执行操作方法的物理控制器类文件路径?_Asp.net_Asp.net Mvc_Asp.net Mvc 2 - Fatal编程技术网

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

Asp.net 如何获取执行操作方法的物理控制器类文件路径?,asp.net,asp.net-mvc,asp.net-mvc-2,Asp.net,Asp.net Mvc,Asp.net Mvc 2,假设当前执行的操作方法是主控制器中的Index()。如何从Index()中获取主控制器的物理文件路径?假设我们直到运行时才知道文件结构。这将有帮助:这将有帮助:物理文件(Controller\Home.cs)可能不存在,因为控制器被编译成.dll,并且按照惯例存储在bin文件夹中 如果它是您想要的.dll,可能在bin文件夹中,或者在控制器中使用 您可以使用以下命令找到控制器的名称: Request.RequestContext.RouteData.Values["controller"];

假设当前执行的操作方法是主控制器中的Index()。如何从Index()中获取主控制器的物理文件路径?假设我们直到运行时才知道文件结构。

这将有帮助:

这将有帮助:

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

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

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

Request.RequestContext.RouteData.Values["controller"];
您可以将.cs文件的位置存储在Web.Config中,这样就足够找到它们了。(注意部分.cs文件)

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

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

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

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

Request.RequestContext.RouteData.Values["controller"];
您可以将.cs文件的位置存储在Web.Config中,这样就足够找到它们了。(注意部分.cs文件)


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

可能是dublicate->@Rippo,我想这就是他要拍的for@hunter是的,我明白了。。。为了测试可能的dublicate->@Rippo,我想这就是他要拍的for@hunter是的,我明白了。。。为了测试目的,我们可以强制MVC项目作为WebForm网站工作吗?我的意思是,cs文件仍然在站点目录中?视图(.cshtml/.aspx)物理存储在服务器上。将编译控制器(这些控制器可以与codebehind文件进行比较)。但在视图中添加控制器逻辑是错误的。你想做什么?我的方案是用包含2个按钮的母版页构建一个mvc项目。一个标题为“显示控制器代码”的按钮将让访问者知道控制器代码,另一个标题为“显示视图代码”的按钮将显示视图代码。它看起来像是W3C实验站点的教程,但我的是只读模式。谢谢你的回答。我认为这个问题永远不会得到解决,因为控制器的预编译是必须的。而且,由于控制器可能很大(而且是部分的),向用户展示正确的东西(=方法)可能需要构建自己的C#编译器。我们能强迫MVC项目作为WebForm网站工作吗?我的意思是,cs文件仍然在站点目录中?视图(.cshtml/.aspx)物理存储在服务器上。将编译控制器(这些控制器可以与codebehind文件进行比较)。但在视图中添加控制器逻辑是错误的。你想做什么?我的方案是用包含2个按钮的母版页构建一个mvc项目。一个标题为“显示控制器代码”的按钮将让访问者知道控制器代码,另一个标题为“显示视图代码”的按钮将显示视图代码。它看起来像是W3C实验站点的教程,但我的是只读模式。谢谢你的回答。我认为这个问题永远也解决不了,因为控制器的预编译是必须的。而且,由于控制器可能很大(而且是部分的),向用户展示正确的东西(=方法)可能需要构建自己的C#编译器。谢谢。若控制器类必须在doployment之前编译,而webform站点不需要预编译就可以部署,那个么我在这个主题中的问题就不再是可以解决的了。谢谢。若控制器类必须在doployment之前编译,那个么和webform站点不同的是,webform站点可以在不预编译的情况下部署,我在本主题中的问题不再是可以解决的。