ActionResult重载如何工作?

时间:2014-01-10 23:14:19

标签: c# asp.net-mvc actionresult

我是ASP.NET MVC的新手。刚看到我的教授在实验室里这样做了。

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

[HttpPost]
public ActionResult Create(Student student)
{
    if (ModelState.IsValid)
    {
        manager.CreateStudent(student);
        return RedirectToAction("List");
    }
    else
    {
        return View("Error");
    }
}

它完美无缺。但是我不清楚这个[HttpPost]重载是如何工作的?

如果我将[HttpGet]放在那里会怎么样?

1 个答案:

答案 0 :(得分:1)

ASP.NET MVC是Model-View-Controller编程模型的特定实现。这意味着一个Controller方法调用返回一个View,它可以选择包含一个Model(某种数据)。

在这种特殊情况下,Create将返回一个没有关联模型的视图,类似于空白创建学生页面,其中可能包含以下字段:名字,姓氏,电子邮件等。一旦输入该数据,它在客户端解析为Student对象并POST到服务器。 ASP.NET MVC查看对象(及其类型)并找到要调用的适当重载方法。在这种情况下,它是一种在某种数据库中实际创建学生的方法。

如果您使用Create(Student)拨打HttpPost,ASP.NET MVC将返回Create(),因为Create()默认为[HttpGet]。< / p>

相关问题