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");
    }

我怎样才能得到这个网址?

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 回答