2014-11-29 2 views
1

Из этого примера http://xombe.com/2014/02/17/combine-angular-js-with-asp-net-mvc/, как передать данные в контроллер MVC asp.net? В этом примере он этого не делает. Он обращается к контроллеру и создает новый объект, который передается обратно в представление. Это все только для чтения.AnuglarJS & asp.net MVC - передача данных контроллеру?

Вот мой Угловой код:

<script type="text/javascript"> 
     var myApp = angular.module('myApp', []) 
     .controller('myAppCtrl', function ($scope, $http) { 
      $scope.updatefromview = function() { 
       $http.post("@Url.Action("UpdateSomething", "Home", "testData")").success (function(data) { 
        $scope.somestring = data; 
       }); 
      }; 
     }); 
    </script> 

"Обновить()" срабатывает в кнопке:

<input type="submit" ng-click="updatefromview()" value="update"/> 

Когда кнопка нажата, я иду в контроллер asp.net MVC, но ничего не передается в asp.net MVC контроллер подписи выглядит следующим образом:.

[HttpPost] 
    public ActionResult UpdateSomething(string somedata) 

somedata всегда null. Я ожидаю увидеть текст «testData». Что я делаю не так?

+0

CodeProject всегда промахивается Размещая запутанные примеры. – 4thSpace

ответ

2

Попробуйте заменить третий аргумент "testData" на new{ somedata = "testData" } в Url.Action() метод.

Третий параметр RouteValueDictionary который является ключевой ценностью пара как вещь, так что вы должны указать его с помощью анонимного типа, который производится с помощью new { }

+0

Удивительный! Благодарю. – 4thSpace

+0

Добро пожаловать. Можете ли вы проверить только одно, переименовать переменную somdata в какое-то другое имя и проверить это значение, а не –

+0

Нет - значение не получается, если переменная переименована. Параметры javascript и .net должны совпадать. – 4thSpace

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