当url: "{controller}/{action}.aspx"时,在MVC 4中HTTP 40

本文关键字:quot MVC HTTP url controller aspx action | 更新日期: 2023-09-27 18:06:57

我试图显示一个完整的URL与MVC 4 web应用程序,如:localhost:8888/index。aspx,我想在浏览器中显示完整的URL。我在这里和这个答案中发现了类似的问题:https://stackoverflow.com/a/8557085他们说可以看到文件扩展名。

但是当我像这样改变路由对象时:

routes.MapRoute(
     name: "Default",
     url: "{controller}/{action}.aspx",
     defaults: new { controller = "PaymentPortal", action = "PaymentPortal", id = UrlParameter.Optional }
);

routes.MapRoute(
     name: "Default",
     url: "{controller}/{action}/{id}.aspx",
     defaults: new { controller = "PaymentPortal", action = "PaymentPortal", id = UrlParameter.Optional }
);
错误HTTP 403.14 - Forbidden

我尝试下一个修复,在类RegisterRoutes我添加下一行:路由。

web。配置我添加,删除和更改一些东西,如:

<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
  <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
  <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
  <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
  <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%'Microsoft.NET'Framework'v4.0.30319'aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
  <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%'Microsoft.NET'Framework64'v4.0.30319'aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
  <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
<modules runAllManagedModulesForAllRequests="true"/>

我玩ExtensionlessUrlHandler添加,删除和更改标签和值,但没有。我添加了模块runAllManagedModulesForAllRequests="true"但也没有。

我正在使用Windows 8中的VS2012, MVC 4与ASPX引擎。任何帮助将是感激的,非常感谢你!

p。d。如果我的英语说错了,我向你道歉。

当url: "{controller}/{action}.aspx"时,在MVC 4中HTTP 40

我刚刚创建了一个新的MVC 4应用程序,并创建了路由:

routes.MapRoute(
    name: "Test",
    url: "{controller}/{action}.aspx",
    defaults: new {controller = "Home", action = "Index"}
    );
routes.MapRoute(
    name: "TestId",
    url: "{controller}/{action}/{id}.aspx",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );
routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

和这些url工作

http://localhost:62312/Home/index/123test.aspx
http://localhost:62312/Home/index.aspx

请记住,创建路由的顺序也很重要。