Вот мое единственное решение ES6 Liner с необязательным параметром on
.
if (typeof Array.prototype.move === "undefined") {
Array.prototype.move = function(from, to, on = 1) {
this.splice(to, 0, ...this.splice(from, on))
}
}
Адаптация первого решения, предложенного digiguru
Параметр on
- это номер элемента, начиная с from
, который вы хотите переместить.
Если Вы уже используете ASP.NET MVC для остальной части веб-сайта, я предполагаю, что имеет смысл использовать ту же платформу для вызовов Ajax также.
Относительно конвейера ASP.NET, я предполагаю, что Вы волнуетесь по поводу целой вещи Жизненного цикла Страницы. Жизненный цикл страницы только выполняется при использовании Представлений с WebFormViewEngine. Платформа обеспечивает JsonResult для легкой сериализации JSON результатов действия, которая полностью обходит жизненный цикл страницы ASP.Net. Подобные классы доступны для XML, RSS, и т.д.
На моем блоге http://shouldersofgiants.co.uk/Blog/ я соединил последовательное рассмотрение использования ASP.NET MVC для обеспечения УСПОКОИТЕЛЬНОГО веб-сервиса, если это помогает.
Необходимо дифференцировать вызовы Ajax от API REST в некотором смысле, что вызовы Ajax выполняются в контексте приложения и могут полагаться на контекст приложения для вещей как сессия, аутентификация и т.д. API REST однако является рядом API, которые Вы предусматриваете мир для потребления - поскольку это может полагаться приложение для вещей как аутентификация, которую это приносит совершенно новой сложности для обеспечения вызовов от клиентов и т.д.
, Если Вам просто нужен JS Вашего приложения для разговора с сервером затем с помощью контроллеров MVC, самое легкое простое решение.
, Если Вы хотите те API, разделенные от кода MVC Вашего веб-сайта (в целях развертывания и т.д.) или если Вам нужен API REST для других для использования для вызова приложения - WCF.