繁体   English   中英

此ActionResult重载如何工作?

[英]How does this ActionResult overloading work?

我对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]放在那里,会发生什么?

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

在这种情况下, Create会返回一个没有关联模型的View,例如空白的create student页面,其中可能包含以下字段:名字,姓氏,电子邮件等。一旦输入了数据,便会在客户端上对其进行解析端放入一个Student对象,并发布到服务器。 ASP.NET MVC看到对象(及其类型),并找到适当的重载方法来调用。 在这种情况下,这是一种在某种数据库中实际创建学生的方法。

如果要使用HttpPost调用Create(Student) ,则ASP.NET MVC将返回Create()因为默认情况下Create()[HttpGet]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM