所以基本上在我的UserController.cs类中,我有一个Index方法,它返回ActionResult以显示用户的仪表板。在这个页面上是一个带有提交类型的html按钮。当我点击此按钮时,我想在服务器端捕获它,将用户输出。
我怎么能这样做,因为我没有传回信息,方法签名最终也是一样。
谢谢,
麦克
[Authorize]
public ActionResult Index()
{
return View();
}
[Authorize]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index()
{
FormsAuthentication.SignOut();
return RedirectToAction("Index", "Home");
}
答案 0 :(得分:5)
[AcceptVerbs(HttpVerbs.Get), ActionName("Index"), Authorize]
public ActionResult IndexGet()
{
return View();
}
[AcceptVerbs(HttpVerbs.Post), ActionName("Index"), Authorize]
public ActionResult IndexPost()
{
FormsAuthentication.SignOut();
return RedirectToAction("Index", "Home");
}
答案 1 :(得分:2)
使用:
[Authorize]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(FormCollection values)
{
FormsAuthentication.SignOut();
return RedirectToAction("Index", "Home");
}
或者
[Authorize]
[AcceptVerbs(HttpVerbs.Post), ActionName("Post")]
public ActionResult IndexPost()
{
FormsAuthentication.SignOut();
return RedirectToAction("Index", "Home");
}
答案 2 :(得分:1)
正如您在C#中所知,在同一个类中不能有两个具有相同名称和相同参数的方法。您可以添加一些虚拟参数,或者我建议您将第二个操作重命名为SignOut
,这似乎在语义上更正确,更好地反映了此操作实际执行的操作。