Как изменить цель вызова AJAX при вызове из другого представления/страницы?

Я тестирую скрипт .js, используя Qunit.

У меня есть статическая тестовая программа .html, которая включает «тестируемый код» .js (CUT) и содержит соответствующую разметку. Я тестирую QUnit в другом включенном скрипте.
Эта система и тестовый скрипт находятся в проекте: Application.UI.Tests.JScript.

В CUT есть вызовы AJAX, которые имеют цель относительно местоположения представления, которое его использует.
Представления и сценарии находятся в обычных папках в проекте MVC: Application.UI.

Событие сборки Application.UI.Tests.JScript выполняет Del и XCopy папок Scripts и Content, чтобы убедиться, что тесты выполняются с копией последней версии CUT.

Пример кода:

sendDataToServerViaAjax: function () {
    var dataToSend = somefunctionThatReturnsData();

    $.ajax({
         url: 'actionName'
        , type: 'post'
        , data: dataToSend
        , dataType: 'json'
        , success: function (returnedData) {
            alert('This was received by server: ' + returnedData);
        }
    });
}

actionName переходит к действию:

[ValidateInput(false)] //TODO for now
public JsonResult actionName(FormCollection formIn)
{
    string jsonData = formIn[0];
    JsonResult result = new JsonResult();
    result.Data = jsonData;
    return result;
}

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


Вопрос. Как заставить CUT вызывать действие AJAX на контроллере в работающем проекте Application.UI со статической страницы .html в Application.UI.Tests.JScript без редактирования CUT для включения информации, предназначенной для тестирования?


person StuperUser    schedule 12.01.2011    source источник


Ответы (1)


Изменение значения url с actionName на /Controller/actionName сделает URL-адрес относительно корня сайта, например.

$.ajax({
     url: 'actionName'
    , type: 'post'
    , data: dataToSend
    , dataType: 'json'
    , success: function (returnedData) {
        alert('This was received by server: ' + returnedData);
    }
});
person StuperUser    schedule 19.01.2011