0

MVC で Web サイトを開発しましたが、リンク アドレスがアドレス バーにどのように表示されるかについて少し問題があります。Web サイトを開くときは、まずログオンする必要があります。アカウントにログインすると、ホームページが表示されますが、ブラウザのアドレス バーにはまだ表示されています

http://localhost:1413/Account/LogOn

それ以外の

http://localhost:1413/Home

また、ログアウトした後、ログインページにリダイレクトされますが、アドレスバーに表示されます

http://localhost:1413/Account/LogOn 

ただになりたい

http://localhost:1413/Account/LogOff

私の Global.asx コード

 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 = UrlParameter.Optional } // Parameter defaults
        );           
    }

このタイプのリダイレクトを使用しましたが、結果は同じです。

public ActionResult LogOn()
    {
        if (HttpContext.User.Identity.IsAuthenticated == true)
        {
            return RedirectToAction("Index", "Home");
        }
        return View();
    }
4

2 に答える 2

1

このようなホームページへのリダイレクトアクションを使用する必要があります

RedirectToAction("Action", "Controller")

したがって、ユーザーが認証されたら、ユーザーを特定のコントローラーにリダイレクトする必要があります。

ユーザーがログオフしたときも同様です

于 2013-01-11T13:33:37.787 に答える
1

ご覧のとおり、問題はルーティングではなく、ルーティングが正常に機能しているためです。あなたの問題は、コントローラーアカウントで作業していることです。そのため、アカウントは常に URL に表示されます。これを取得したい場合:

http://localhost:1413/Home

HomeController.cs という名前のコントローラーにリンクする必要があります

私が説明しようとしたことを理解していただければ幸いです。

多分これはあなたをもっと助けることができます: http://www.codeproject.com/Articles/190267/Controllers-and-Routers-in-ASP-NET-MVC-3

于 2013-01-11T13:34:53.813 に答える