asp.net mvc - 我如何参考查看目录中的asp文件

问题描述:

我有一个页面在我的asp..net mvc网站里面。 (由于某种原因,它必须是此目录中)asp.net mvc - 我如何参考查看目录中的asp文件

查看/会员/日历/ admin.asp中

我试着去:

http://www.mySite.com/Views/Members/Calendar/admin.asp

,但这似乎并没有不工作。

有关如何获得此页面链接的任何建议?

+0

那是一个错字?你的意思是“.aspx”还是你的意思是“.asp”? – 2009-08-19 08:11:02

+0

我的意思是asp。 ..我实际上只是保存在另一个域上的ASP文件,并把它们的常规URL链接,因为我无法找出任何其他方式 – leora 2009-08-19 12:15:22

ASP.NET MVC阻止对~/Views目录内的任何文件的所有访问。如果您想访问任何文件,除了*.aspx改变你的~/Views/web.config以下几点:(从Haacked - Security Tip: Blocking Access to ASP.NET MVC Views Using Alternative View Engines):

或删除这两个<add ...,如果你想访问*.aspx文件了

对于IIS 6:

<system.web> 
    <httpHandlers> 
     <add path="*.aspx" verb="*" type="System.Web.HttpNotFoundHandler"/> 
... 

对于IIS 7:

<system.webServer> 
    <validation validateIntegratedModeConfiguration="false"/> 
    <handlers> 
     <remove name="BlockViewHandler"/> 
     <add name="BlockViewHandler" path="*.aspx" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler"/> 

查看与实际的目录/地址无关,在MVC中,控制器是处理这个的一个。

假设你开始了与MVC的默认模板,地址是:

http://site.com/CONTROLLER/ACTION/ID 

控制器即为控制器类的名称(这下控制目录),ACTION是方法(它返回的ActionResult)在控制器中,ID是一个字符串/ int,作为操作方法参数传递。

我想你想有像地址:

http://mysite.com/Members/Calendar/admin/ 

它确实在那里你把视图或控制器,但你应该看看是内全球路由表中没有真正的问题。 ASAX。 Routing mvc tutorial

编辑

在控制器中,通常你要调用

return View(); 

在行动结束。 View()实际上是具有8种不同用法的controlelr类的重载内部方法调用。不带参数的缺省值将查找与控制器相同的视图名称。为了引用不同于默认值的不同视图类,您只需使用:View(IView Class)。例如,在你的代码可能是:

return View(new PROJECT.Members.Calendar.Admin()); 
+0

但在这种情况下,在某些时候我需要指向其目录中的ASP文件。从控制器我怎么重定向到这个视图 – leora 2009-08-19 05:30:33

+0

编辑。在控制器操作中,您可以明确呈现其他视图页面。 – xandy 2009-08-19 07:00:36

你试过添加IgnoreRoute方法您的注册路线的方法忽略此特定的URL顶部?您必须编辑Views文件夹中的web.config,才能将此路径分配给ASP处理程序,因为默认情况下〜/ Views文件夹会给出404。 ASP处理程序应该接收请求,因为MVC处理程序会忽略它。