我看到惯例是让post操作与页面的名称相同,但是放一个:
[AcceptsVerb.HTTPVerbs.Post]
关于行动方法。
将帖子操作作为另一个名称是否有任何问题。
因此,如果我有一个名为Edit的页面,则Edit操作将显示该页面,而“Update”操作将发布编辑更改。与编辑“获取”和编辑“发布”
相比,这似乎更清晰 如果这纯粹是一种常规的事情,或者这里是否存在对错,想让人们对此有所了解?
答案 0 :(得分:2)
使用不同的名称需要您编写更多代码。
如果您的GET和POST操作具有相同的名称,则可以使用以下代码编写视图:
<% Html.BeginForm() %>
......而不是......
<% Html.BeginForm("PostActionName") %>
同样,您的帖子操作可能如下所示:
{
if (!ModelState.IsValid)
{
return View(Model);
}
// ...
...而不是:
{
if (!ModelState.IsValid)
{
return View("GetActionName", Model);
}
// ...
正如你所看到的,给行动起了同样的名义并没有压倒性的优势;这只是一个方便的问题。 GET和POST操作具有相同名称的假设会在框架中的许多不同位置弹出。你总是可以覆盖它,但它就是这样:覆盖一个假设。
答案 1 :(得分:1)
我认为这纯粹是惯例,拥有不同的动作后名称并没有错。
MVC默认情况下返回一个与操作同名的视图,并且假设您要获取或发布相同的视图。
此外,更改操作名称通常会更改URL,但如果您不关心这一点,请使用您的操作名称
我已经使用了动作名称/目的的组合,这取决于当时看起来有意义的内容。
答案 2 :(得分:0)
在我看来,如何命名您的行为并不重要,但它应该在您的站点/应用程序中保持一致。我认为,如果您将REST用作应用程序的API,那么您可能希望执行/system/accounts/user/34/addNote/
之类的操作,而不是更新整个用户或使用其他控制器来记录笔记。
答案 3 :(得分:0)
除非您正在创建RESTfull应用程序,否则只要您的命名约定在整个应用程序中保持一致,它就无关紧要。
Stephen Walther has a good article关于命名基本CRUD操作的命名约定。