0

私はこのコードでコントローラーにアクションを持っています:

    [Authorize(Roles = "members")]  
    [HttpPost]
    public ActionResult login(string uname,string pass)
    {

        MembersSrv mm = new MembersSrv();
         if (mm.validateUsers(uname,pass)==true)
        {
            mm.CreateCookie(uname, pass);
            return RedirectToAction("Index");
         }
        else
             return RedirectToAction("Login");
    }

このURLを取得するにはどうすればよいですか?

http://localhost:5555/Members/Login

このルートは本当ですか?

      routes.MapRoute(
               "Login", // Route name
               "Members/{action}/{Uname}", // URL with parameters
               new { action = "Login", Uname =" " } // Parameter defaults
               );
4

2 に答える 2

2

GETそのための行動が必要です

public ActionResult Login()
{
  return View();
}

[Authorize(Roles = "members")]  
[HttpPost]
public ActionResult login(string uname,string pass) 
{
  //your code handle login when form posted
}

これは次のようにアクセスできます

http://yourdomainname/members/login

loginアクションが に属していると仮定しmembersControllerます。

ユーザーがフォームを投稿すると、HttpPostアクション メソッドがそれを処理します。

定義したルートは必要ない場合があります。あなたが持っているデフォルトのルートで問題ありません。

routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
于 2012-09-18T17:55:30.383 に答える
0

会員エリアのルートは次のとおりです。

 public override void RegisterArea(AreaRegistrationContext context)
     {
         context.MapRoute(
             "Members_default",
             "Members/{controller}/{action}/{id}",
             new { action = "Login", id = UrlParameter.Optional }
         );
     }

次のように変更できますか:

    public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "Members_default",
            "Members/{action}/{id}",
            new { action = "Login", id = UrlParameter.Optional }
        );
    }
于 2012-09-20T21:27:02.227 に答える