在mvc中的httppost动作

时间:2016-06-04 15:00:01

标签: routes attributes asp.net-mvc-5

我正在开发一个MVC项目,我使用下面代码中的Controller来注册消息,但我遇到了问题。当我执行代码时,它找不到联系人页面,但是当我评论[httppost]它可以加载联系页面时,我在哪一步做错了? 谢谢

[HttpPost]
    [Route("Contact")]
    public ActionResult Contact(Contact msg)
    {
        try
        {
            Contacts.InsertMessage(msg);
            return View(model: "Successful");
        }
        catch (Exception ex)
        {
            return View(model: "Failed:   " + ex.Message);
        }

    }

1 个答案:

答案 0 :(得分:0)

你有另外一个actionResult加载这样的联系页面吗?

public ActionResult Contact()
{
   .....
}

如果是,那么它是有道理的,因为当你将[HttpPost]分配给ActionResult时,ActionResult只会处理POST请求(例如提交表单)而你用来加载联系页面的那个没有[HttpGet] ]将处理GET请求。因此,除非您将[HttpPost]或[HttpGet]或两者放在各自的ActionResult中,否则控制器不会知道要处理哪个ActionResult。