2

ASP.NET MVC4 で独自の URL ルートを定義するには、Global.asax.cs を次のように変更すると思います...

using System.Web.Mvc; 
using System.Web.Routing; 
namespace MvcApplication1 { 
    public class MvcApplication : System.Web.HttpApplication { 
        public static void RegisterRoutes(RouteCollection routes) { 
            routes.MapRoute( .....

しかし、どこにも見つからないのは、複数のルートを追加する方法です-たとえば、routes.MapRoute(....)もう一度電話をかけますか?

また、これは非表示のデフォルト ルーティング定義を上書きしますか? それを保持したい場合は、それも定義する必要がありますか?

4

3 に答える 3

2

複数のルートを追加するには、このadding_routes_to_an_mvc_applicationを確認してください。あなたが言ったように、routes.MapRoute(....)もう一度電話してください。

考慮すべきことの 1 つは、MVC ルーティングが順序付けルートを尊重することです。最後のルートは可能な限り汎用的である必要があり、以前のルートは可能な限り具体的である必要があります ( ASP.NET MVC デフォルト ルートを確認してください) 。

これにより、非表示のデフォルト ルーティング定義が上書きされますか?

私はそうは思いませんが、デフォルトの MVC ルートの前に、あなたの reoutes が最初にチェックされることを確認してください (このSO 投稿を確認してください) 。

于 2013-08-11T16:04:09.023 に答える
1

MVC 4 アプリケーションでルートが定義されている場所について混乱しているようです。

あなたはglobal.asax(デフォルトで)のように見えるはずです:

public class MvcApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();

        WebApiConfig.Register(GlobalConfiguration.Configuration);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
        AuthConfig.RegisterAuth();
    }
}

は次のようRouteConfigに定義され/App_Start/RouteConfig.csています (デフォルト):

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

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

これを知っていれば、必要に応じてルートを編集できるはずです。

于 2013-08-11T17:45:20.387 に答える