2013-03-28 56 views
6

我需要检索MVC 4.0内的views\something文件夹(来自请求)内的单个视图的名称,我不确定如何做到最好。获取ASP.Net MVC 4.0中的视图文件夹内的文件

我的代码有效,但它有'hacky'的感觉,我希望有人可以简化。

我的代码如下所示:

private FileInfo GetNameOfViewToServe() 
    { 
     var LeftPartOfUri = Request.Url.GetLeftPart(UriPartial.Authority); 
     var folder = Request.Url.AbsoluteUri.Replace(LeftPartOfFolderUri,string.Empty); 
     var directory = new DirectoryInfo(Server.MapPath(@"~\Views\" + folder)); 
     return directory.GetFiles().First(); 
    }  

有没有更优雅的方式来实现这一目标?

+0

你不把它存储在数据库中,有一个名称indentify任何原因,这个解决方案? EG:http:\\ mysite.com \ submitreview - > db查找submitreview =〜\ Views \ submitreview.aspx – Justin

+0

是的,不幸的是它是一个棕色的领域项目,我必须与那里的工作。我只需要一个更优雅的检索文件列表的方法(通常只有一个来自相对请求路径) – davy

+0

你能显示你正在调用的控制器动作吗?既然是MVC,你的控制器不能有一个通用动作一个字符串参数,你可以使用反射来创建视图或工厂模式,将返回基于字符串键的视图? – Justin

回答