重载控制器内的动作:asp.net MVC 3

时间:2012-09-21 10:01:55

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-2

  

Html.BeginForm(“LogOn”,“Home”,FormMethod.Post)

     

LogOn - 动作。

     

主页 - 控制器。

所以它会像= Home / LogOn那样创建Url。

但如果我在控制器LogOn(String s )内有LogOn(int i)Home,且两者都是HttpPost, 然后当时提出了哪一个动作。意味着它现在正在例外:

  

之间的含糊不清      

以下行动方法“

1 个答案:

答案 0 :(得分:0)

在同一个控制器中不能有2个具有相同名称的操作。实现此目的的唯一方法是仅使用[HttpPost]

使两个操作中的一个可访问
public ActionResult LogOn(int i)
{
    ...
}

[HttpPost]
public ActionResult LogOn(string s)
{
    ...
}

现在,当您提交表单时,它将调用第二个操作。当您在浏览器地址栏中键入/home/logon时(使用GET动词),它将执行第一个可能呈现LogOn表单的操作。