我有一个部分视图,其中包含用于登录的输入。部分视图出现在网站的每个页面上,以便用户可以从任何页面登录网站。
我有一个基本控制器,然后由所有其他控制器继承,如下所示。
提交登录信息后,它将转到基本控制器中的登录操作。
如何返回提交登录信息的视图?
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();
}
}
答案 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);
}