質問

私はポストをたくさん読んで、私は私のmystakeを参照してくださいいけない。

いくつかの体は、私を助けてくださいことができます。

私のGlobal.asaxがあります。

public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");                
           routes.MapRoute(
                "Default",                                              // Route name
                "{controller}/{action}/{id}",                           // URL with parameters
                new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
            );
           routes.MapRoute("UserName", "Account/{action}/{username}",
          new { action = "EditProfile", controller = "Account" });   

        }

        protected void Application_Start()
        {
            RegisterRoutes(RouteTable.Routes);
        }

私が使用している場合

<%= Html.ActionLink("Edit Account", "EditProfile", "Account", new { username = Html.Encode(Page.User.Identity.Name) },null) %>

私が得たこのURL

ます。http:// localhostを:?8458 /アカウント/ EditProfileユーザ名= cboivinする

私のようなURLを直接呼び出そう ます。http:// localhostを:8458 /アカウント/ EditProfile / cboivinする

...に動作しません

私のAccountControllerの私の方法は、

があります
 public ActionResult EditProfile(string username)
        {

            return View(ServiceFactory.UserAccount.GetUserByUserName(new GetUserByUserNameArgs(username)));
        }

私は私のミスがどこにあるか知りません。いくつかの体は私を助けることができますか?おかげます。

役に立ちましたか?

解決

ルートは、あなたの「キャッチすべての」一般的なルートが最後にする必要がトップダウンで読まれます。

routes.MapRoute("UserName", "Account/{action}/{username}",
          new { action = "EditProfile", controller = "Account" });


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

他のヒント

削除してくださいます:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
より具体的なルートが一番上に来る必要がありながら、

そして、より一般的なルートは、ルーティングテーブルの一番下にあるべき覚えています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top