簡體   English   中英

C#ASP.NET MVC 1.0路由

[英]C# asp.net mvc 1.0 routing

在我的網絡應用中。 我想設置一條這樣的路線:

/document/quality/index
/document/general/index

/document/quality/detail/[id]
/document/general/detail/[id]

如您所見,我有兩種文件:一般文件和質量文件。 在global.asax文件中進行設置的最佳方法是什么? 我嘗試了以下方法,但無法正常工作:

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

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

routes.MapRoute(
    "Default",                                              // Route name
    "{controller}/{action}/{id}",                           // URL with parameters
    new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
);

編輯

我現在可以正常使用,但是當我在asax文件中更改action =“”時,它將不再起作用:

Global.asax中:

routes.MapRoute(
    "GeneralDocument",
    "Document/General/{action}/{id}",
    new { controller = "Document", action = "blaat", id = "" }
    );

DocumentController:

public void blaat(int? id)
{
    Response.Write("algemeen");
    // return View();
}

現在,我得到資源未找到錯誤。 但是,當我使用索引而不是指責時,它正在工作。 怎么會?

也許添加controller屬性,但將其限制為文檔控制器。

routes.MapRoute(
    "QualityDocument",
    "{controller}/Quality/{action}/{id}",
     new { controller = "Document", action="Index", id= ""},
     new { controller = "Document" }
);
routes.MapRoute(
    "GeneralDocument",
    "{controller}/General/{action}/{id}",
    new { controller = "Document", action = "Index", id = "" },
    new { controller = "Document" }   );

您應該只可以在路由前加上“文檔”作為前綴,然后將默認值設置為:

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

記住要完全定義路由! 設定路線時。 不要讓那些意外的路線通過:D

看看MIX上的Scott Hanselman演講非常有趣,您會發現一些很棒的提示!

http://www.hanselman.com/blog/Mix09FirstHalfRollupAndSessionVideos.aspx

嘗試這個:

routes.MapRoute(
    "QualityDocument",
    "Document/Quality/index",
    new { controller = "Document", action="Index" }
);

routes.MapRoute(
    "Default",                                              // Route name
    "Document/Quality/details/{id}",                               // URL with parameters
    new { controller = "Document", action = "Details", id = "" }  // Parameter defaults
);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM