2016-08-10 4 views
1

Я попытался кучу вещей, и это то, что я до сих пор:Угловая asp.net MVC вызова с функцией # контроллер

Так я пытаюсь вызвать этот метод «RunTest()» из моего JavaScript. Метод на самом деле не идет, и он проходит успешно, поэтому «handleTest()» идет, а также преуспевает. Мне нужно, чтобы он фактически вызывал функцию контроллера.

JavaScript/Угловая/JQuery

$scope.runTest = function (myTest) { 
    $.ajax({ 
     method: 'POST', 
     Url: 'Tests/runTest', 
     contentType: 'application/json;', 
     data: myTest, 
     success: function() { handleTest(myTest); }, 
     error: function() { alert('no object found'); } 
    }); 
} 

function handleTest(currentTest){ 
    var updated = { id: currentTest.id, name: currentTest.name, schedule: currentTest.schedule, description: currentTest.description, server: currentTest.server, port: currentTest.port, method: currentTest.method }; 
    //var updated = currentTest; 
    $http({ 
     method: "PUT", 
     url: 'http://~~api address~~/api/tests/' + (currentTest.id), 
     data: updated 
    }) 
    .success(function (data, status, headers) { 
     alert("Test was successfully updated."); 
     $state.reload(); 
    }) 
    .error(function (data, status, headers) { 
     alert("Test could not be updated."); 
     $state.reload(); 
    }); 
} 

C# метод контроллера (названный TestsController)

[HttpPost] 
public ActionResult runTest(StandardTest myTest) 
{ 
    myTest.lastResult = MyEnum.Pass; 
    log.Info(myTest.name + " " + myTest.lastResult + " " + myTest.id); 
    return Json(myTest, JsonRequestBehavior.AllowGet); 
} 

Любая помощь будет так так оценили.

ответ

3

Примером может быть следующим:

В вашем C# контроллер

[HttpPost] 
public ActionResult runTest(StandardTest myTest) 
{ 
    myTest.lastResult = MyEnum.Pass; 
    log.Info(myTest.name + " " + myTest.lastResult + " " + myTest.id); 

    if (!testPassed){   
     //test did not pass 
    return Json(new {success = false, 
        responseText = "Test did not pass",JsonRequestBehavior.AllowGet); 
    } 
    else 
    { 
    //Test Passed 
    return Json(new {success = true, 
         responseText= "Test Passed"},JsonRequestBehavior.AllowGet); 
    } 
} 

Попробуйте запустить свой веб-запрос, используя угловую службу $ HTTP.

angular.module('YourModuleName') 
     .controller("ngControllerName", ["$http", "$scope", function ($http, $scope) { 
     /*Request to C# Controller*/ 
     $scope.runTest = function(myTest){ 
      var config = { 
       params:{myTest: myTest} 
       } 
     $http.get('/Tests/runTest', config).success(function (data) { 
      if(data !=null && data.success){ 
      handleTest(myTest); 
      } 
     }).error(function (error) { 
      //Handle Error 
      }); 
     } 
    } 
+0

Что вы добавили, не удалось полностью исправить мою проблему, но это поставило меня на правильный путь, и я получил его на работу, спасибо !!! –

Смежные вопросы