ASP.NET MVC AcceptVerbs и регистрирующиеся маршруты

Вам нужно разложить, разделить, а затем собрать обратно.

update the_table
  set the_array = array(select t.val / 10 
                        from unnest(the_table.the_array) as t(val));

Если вам нужно сохранить исходный порядок в массиве, используйте with ordinality

update the_table
  set the_array = array(select t.val / 10 
                        from unnest(the_table.the_array) with ordinality as t(val,idx) 
                        order by t.idx);

Для запуска этого в Liquibase вам нужно использовать изменение

Онлайн пример: https://rextester.com/IJGA96691

21
задан Pure.Krome 12 November 2008 в 07:00
поделиться

3 ответа

Различие между этими двумя следующее: давайте примем Create, рассматриваемый метод находится на HomeController.

Используя эти AcceptVerbs атрибут не влияет на маршрутизацию. Это - на самом деле что-то используемое действием invoker. Что это позволяет, Вы, чтобы сделать, имеют 2 метода действия для контроллера с тем же именем, что каждый отвечает на различный Метод HTTP.

public ActionResult Create(int id) { .. }

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(FormCollection formCollection) { .. }

Поэтому, когда запрос на /home/create войдет, маршрут будет соответствовать и вручать от запроса invoker контроллера. invoker тогда вызывает корректный метод путем рассмотрения эти AcceptVerbs атрибут.

Используя HttpMethodConstraint в маршрутизации сделает его таким образом, что сам маршрут не будет соответствовать запросу. Таким образом, когда запрос POST наталкивается на /home/create, никакой метод действия не назовут, потому что тот маршрут не будет соответствовать запросу. Возможно, что другой маршрут будет соответствие тот запрос все же.

Часть причины перекрытия здесь - то, что Маршрутизация является функцией ASP.NET 3,5 SP1 и не характерна для MVC. MVC использует Маршрутизацию, но Маршрутизация также используется Динамическими Данными, и мы планируем интегрировать маршрутизацию с Веб-формами ASP.NET.

33
ответ дан 29 November 2019 в 20:48
поделиться

Нет - Создают, только ответит на запросы POST.

у Вас могут быть другие реализации, Создают с различными атрибутами AcceptVerb, или один без атрибута, который поймает все другие запросы.

, Если бы это было Вашим единственным, Создают метод, любой ДОБИРАЕТСЯ (или другой не-POST), запрос привел бы к 404.

я принимаю под капотом, это все делается механизмом маршрутизации так или иначе. [редактирование: нет, см. сообщение Haacked]

4
ответ дан 29 November 2019 в 20:48
поделиться

Сначала оформите так:

[ActionName("ItemEdit"), AcceptVerbs(HttpVerbs.Post)]
public virtual object ItemSave(Menu sampleInput)

затем вам нужно добавить маршрут следующим образом:

 AddRoute(
                "SampleEdit",
                "Admin/{sampleID}/Edit",
                new { controller = "Sample", action = "ItemEdit", validateAntiForgeryToken = true },
                new { areaID = new IsGuid() },
                new { Namespaces = controllerNamespaces }
           );
1
ответ дан 29 November 2019 в 20:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: