2

Classic ASP サイトの下に ASP.NET MVC サイトがあります。MVC サイトは次のとおりです。

http://www.inrix.com/traffic

ルート

http://www.inrix.com/traffic
http://www.inrix.com/traffic/home
http://www.inrix.com/traffic/features

うまく動作します。ただし、ルート:

http://www.inrix.com/traffic/support

ではない。それをクリックして、私が得ているものを確認してください。アクションを含める場合:

http://www.inrix.com/traffic/support/index

できます。

VS で F5 キーを押して自宅でこれを実行すると、http://www.inrix.com/traffic/supportだけで正常に動作します(つまり、アクションが指定されていません)。ここに私のルートがあります:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        "Terms",
        "{controller}/{id}",
        new { controller = "Terms", action = "Index" }
        );

    routes.MapRoute(
        "Default",
        "{controller}/{action}/{id}",
        new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

    routes.MapRoute(
        "ThankYou",
        "{controller}/{action}/{email}/{id}"
        );
}

www.inrix.com/traffic は HomeController (Index アクション) にマップされます。

www.inrix.com/traffic/support が SupportController の Index アクションにマップされるようにします。

「サポート」ルートはどうなっていますか?

追加コード:

コントローラ:

using System.Web.Mvc;

namespace InrixTraffic.Controllers
{
    public class SupportController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }
    }
}

意見:

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Support</title>
</head>
    <body>
        <h1>Hello!</h1>
    </body>
</html>

新しいルート:

    routes.MapRoute(
        "Support",
        "traffic/support",
        new { controller = "Support", action = "Index" }
        );
4

2 に答える 2

2

@EDIT:同じURLのファイルパス(おそらくフォルダー)があると思います。つまり、「support」という名前のフォルダーです。ファイル パスをルート パスで上書きするには、以下を追加する必要があります。

routes.RouteExistingFiles = true;
于 2013-04-30T23:49:11.177 に答える