соглашение о почтовых действиях в asp.net mvc - PullRequest
0 голосов
/ 21 января 2010

Я вижу, что условием для действия post должно быть то же имя, что и для страницы, но ставить:

[AcceptsVerb.HTTPVerbs.Post]

о методе действия.

Есть ли что-то не так с тем, что действие post будет другим именем.

Так что, если у меня есть страница с именем Edit, действие Edit отобразит эту страницу, а действие "Update" опубликует изменения редактирования. Это кажется мне более понятным по сравнению с тем, что есть Edit "Get" и Edit "Post"

хотел бы подумать об этом людей, если это чисто условная вещь или здесь правильно и неправильно?

Ответы [ 4 ]

2 голосов
/ 21 января 2010

Использование разных имен требует, чтобы вы написали больше кода.

Если ваши действия GET и POST имеют одно и то же имя, вы можете писать представления с помощью кода:

<% Html.BeginForm() %>

... вместо ...

<% Html.BeginForm("PostActionName") %>

Аналогично, ваше действие может выглядеть так:

{
    if (!ModelState.IsValid) 
    {
        return View(Model);
    }
    // ...

... вместо:

{
    if (!ModelState.IsValid) 
    {
        return View("GetActionName", Model);
    }
    // ...

Как видите, нет особого преимущества в присвоении действиям одного и того же имени; это просто вопрос удобства. Предположение, что действия GET и POST будут иметь одно и то же имя, всплывает во многих разных местах в рамках. Вы всегда можете переопределить это, но вот что это такое: Переопределение предположения.

1 голос
/ 21 января 2010

Я считаю, что это чисто условно, и нет ничего плохого в том, чтобы иметь разные имена после действий.

По умолчанию MVC возвращает представление с тем же именем, что и действие, и предполагается, что вы захотите вернуть то же представление, когда получаете или публикуете.
Кроме того, изменение имени действия обычно приводит к изменению URL-адреса, но если вас это не волнует, тогда сходите с ума от имен действий.
Я использовал комбинации названий действий / целей, в зависимости от того, что, казалось, имело смысл в то время.

0 голосов
/ 21 января 2010

Если вы не создаете приложение RESTfull, на самом деле это не имеет значения, если ваше соглашение об именах является единым для всего приложения.

У Стивена Уолтера есть хорошая статья об именах для обозначения ваших основных действий CRUD.

0 голосов
/ 21 января 2010

По моему мнению, неважно, как вы называете свои действия, но это должно быть согласовано с вашим сайтом / приложением. Я думаю, что если вы используете REST в качестве API для своего приложения, вам бы хотелось иметь такие действия, как /system/accounts/user/34/addNote/, а не обновлять пользователя целиком или иметь другой контроллер для заметок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...