Asp.net mvc登录后重定向到同一页面

时间:2014-06-03 15:18:02

标签: asp.net-mvc

我有一个部分视图,其中包含用于登录的输入。部分视图出现在网站的每个页面上,以便用户可以从任何页面登录网站。

我有一个基本控制器,然后由所有其他控制器继承,如下所示。

提交登录信息后,它将转到基本控制器中的登录操作。

如何返回提交登录信息的视图?

public class BaseController : Controller
{
    [HttpPost]
    public ActionResult logon(string tx_username, string tx_password)
    {
    //Verify login details

    }
}


public class HomeController : BaseController
{
    public ActionResult Index()
    {

        return View();
    }

    public ActionResult About()
    {

        return View();
    }

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

1 个答案:

答案 0 :(得分:5)

ReturnUrl中添加另一个参数@Html.BeginForm,可以使用ViewConext.Controller.ValueProvider填充该参数,并在登录帖子操作中发布当前操作和控制器名称,例如:< / p>

查看:

第一种方式:

@using (Html.BeginForm("logon", 
                       "Home", 
                       FormMethod.Post, 
 new { ReturnUrl = Url.Action(@ViewContext.Controller.ValueProvider.GetValue("action").RawValue.ToString(),
 @ViewContext.Controller.ValueProvider.GetValue("controller").RawValue.ToString()) }))
{


}

第二路:

@using (Html.BeginForm("logon", 
                       "Home", 
                       FormMethod.Post, 
         new { ReturnUrl = this.Request.RawUrl }))
        {


        }

动作:

[HttpPost]
public ActionResult logon(string tx_username, string tx_password,string ReturnUrl)
{
 //If login successful

 return Redirect(ReturnUrl);

}