当不去 /index 而只是 / 时被禁止 (403.14)
Getting forbidden (403.14) when not going to /index but just /
使用ASP.NET MVC,我有如下代码和标准路由定义。当我导航到 mysite.com/ExtjsRun 时出现 403.14 错误,但是当我转到 mysite.com/ExtjsRun/index 时,我执行了控制器。
我的问题是如何让路由 /ExtjsRun 默认为我的索引方法。
using System.Web.Mvc;
using WebApp.Models;
namespace WebApp.Controllers
{
public class ExtJsRunController : Controller
{
[MultiTenantControllerAllow("svcc,angu")]
public ActionResult Index()
{
var str = "/ExtjsRun/" + Tenant.Name;
return Redirect(str);
}
}
}
路由:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
namespaces: new[] {"WebApp.Controllers"},
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home",
action = "Index",
id = UrlParameter.Optional }
);
更改路由代码如下
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
namespaces: new[] {"WebApp.Controllers"},
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "ExtJsRun",
action = "Index",
id = UrlParameter.Optional }
);
您没有将默认控制器设置为 ExtJsRun
,将操作设置为 Index
。根据您的代码,iis 服务器在该控制器中搜索 Home
控制器和 Index
操作,这就是您拒绝访问的原因
希望这有帮助
使用ASP.NET MVC,我有如下代码和标准路由定义。当我导航到 mysite.com/ExtjsRun 时出现 403.14 错误,但是当我转到 mysite.com/ExtjsRun/index 时,我执行了控制器。
我的问题是如何让路由 /ExtjsRun 默认为我的索引方法。
using System.Web.Mvc;
using WebApp.Models;
namespace WebApp.Controllers
{
public class ExtJsRunController : Controller
{
[MultiTenantControllerAllow("svcc,angu")]
public ActionResult Index()
{
var str = "/ExtjsRun/" + Tenant.Name;
return Redirect(str);
}
}
}
路由:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
namespaces: new[] {"WebApp.Controllers"},
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home",
action = "Index",
id = UrlParameter.Optional }
);
更改路由代码如下
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
namespaces: new[] {"WebApp.Controllers"},
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "ExtJsRun",
action = "Index",
id = UrlParameter.Optional }
);
您没有将默认控制器设置为 ExtJsRun
,将操作设置为 Index
。根据您的代码,iis 服务器在该控制器中搜索 Home
控制器和 Index
操作,这就是您拒绝访问的原因
希望这有帮助