被禁止(403.14)什么时候不去/索引但只是/

时间:2016-03-09 06:15:10

标签: asp.net-mvc asp.net-mvc-routing

使用ASP.NET MVC,我有如下代码和标准路由定义。当我导航到mysite.com/ExtjsRun时,我收到403.14错误但是当我转到mysite.com/ExtjsRun/index时,我得到了控制器的执行。

我的问题是如何将route / 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 }
        );

1 个答案:

答案 0 :(得分:0)

更改路由代码,如下所示

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操作,这是您拒绝访问的原因
希望这有帮助