我在控制器中使用此代码执行操作:
[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
);
答案 0 :(得分: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 }
);
答案 1 :(得分: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 }
);
}