2014-07-29 2 views
1

Я пытаюсь передать данные, хранящиеся в динамически созданной таблице, на сервер, и пока я могу получить доступ к данным в моем контроллере angularJS, мне трудно узнать, как передавать эти данные на сервер для обработки.Как я могу вызвать функцию vb.net из кода angularJS?

Вот моя функция angularjs, которая имеет доступ к моим данным таблицы, просто передавая данные и вызывая мою функцию vb.net, с которой у меня возникают проблемы.

$scope.requestThatCertificatesBeEmailed = function() { 
    for (index = 0; index < $scope.requests.length; ++index) { 
     alert('For loop entered') 
     var submittedEmailAddressString = $scope.requests[index].emailAddress; 
     var submittedCertificateTypeString = $scope.requests[index].certificateType; 
     var submittedSearchTypeString = $scope.requests[index].searchType; 
     var submittedSearchString = $scope.requests[index].submittedNumbers; 

     alert(submittedSearchTypeString); 

     $http.post("/Home/NewTextFile", { submittedEmailAddress: submittedEmailAddressString, submittedCertificateType: submittedCertificateTypeString, submittedSearchType: submittedSearchTypeString, submittedSearch: submittedSearchString }).error(function() { 
      $scope.requests = []; 
     }); 

ответ

0

Вам необходимо будет отправить/вернуть данные на сервер. Если вы работаете в приложении ASP.NET WebForms, вам, скорее всего, нужно будет передать значение JSON на сервер в скрытом поле ввода. Если вы работаете в приложении ASP.NET MVC, вы должны иметь возможность вызывать передачу действий контроллера в данных таблицы JSON из javascript.

Ваш метод действия в контроллере MVC должен выглядеть следующим образом:

<HttpPost> _ 
Public Function NewTextFile(submittedEmailAddress As String, submittedCertificateType As String, submittedSearchType As String, submittedSearch As String) As ActionResult 
    'do some work 
End Function 

Использование JQuery, вы можете вызвать действие контроллера так:

$.ajax({ 
    url: '/Home/NewTextFile', 
    type: 'POST', 
    contentType: 'application/json', 
    data: JSON.stringify({ 
     submittedEmailAddress: submittedEmailAddressString, 
     submittedCertificateType: submittedCertificateTypeString, 
     submittedSearchType: submittedSearchTypeString, 
     submittedSearch: submittedSearchString 
    }), 
    processData: false, 
    dataType: 'json' 
}); 

Ниже приведен AngularJS пример я взбитыми вместе :

On/referenced from Вид:

<script type="text/javascript"> 
    angular.module('httpExample', []) 
      .controller('ContactController', ['$scope', '$http', 
       function ($scope, $http, $templateCache) { 
        $scope.contact = { userName: '', firstName: '', lastName: '' }; 

        $scope.get = function() { 
         $scope.code = null; 
         $scope.response = null; 

         $http.get('/Home/Contact'). 
         success(function (data, status) { 
          $scope.status = status; 
          $scope.data = data; 
          $scope.contact = data; 
         }). 
         error(function (data, status) { 
          $scope.data = data || "Request failed"; 
          $scope.contact = { userName: '', firstName: '', lastName: '' } 
          $scope.status = status; 
         }); 
        }; 

        $scope.post = function() { 
         $scope.code = null; 
         $scope.response = null; 

         $http.post('/Home/Contact', $scope.contact). 
         success(function (data, status) { 
          $scope.status = status; 
          $scope.data = data; 
         }). 
         error(function (data, status) { 
          $scope.data = data || "Request failed"; 
          $scope.status = status; 
         }); 

        }; 

       }]); 
</script> 

Где-то в теле:

<div> 
    <div ng-app="httpExample"> 
     <div ng-controller="ContactController"> 
      <fieldset> 
       <legend>Contact</legend> 
       Username: <input type="text" ng-model="contact.userName"/><br/> 
       Last Name: <input type="text" ng-model="contact.lastName"/><br/> 
       First Name: <input type="text" ng-model="contact.firstName"/><br/> 
      </fieldset> 
      <br /> 
      <button id="getbtn" ng-click="get()">get</button> 
      <button id="postbtn" ng-click="post()">post</button><br/><br/> 

      <pre>http status code: {{status}}</pre> 
      <pre>http response data: {{data}}</pre> 
     </div> 
    </div> 
</div> 

И ваш MVC стороне сервера Главная Контроллер имеет методы, которые выглядят следующим образом:

<HttpGet> _ 
Public Function Contact() As JsonResult 
    Dim contact = New With { .userName = "smithjk", .firstName = "John", .lastName = "Smith" } 
    Return Json(contact, JsonRequestBehavior.AllowGet) 
End Function 

<HttpPost> _ 
Public Function Contact(userName As String, firstName As String, lastName As String) As ActionResult 
    'do some work 
    System.Diagnostics.Debug.Print(userName) 
    Return New EmptyResult() 
End Function 
+0

Спасибо так много. Я действительно использую приложение ASP.NET MVC. Я начну исследование по ключевым словам, которые вы включили. Я редактировал в моей функции angularJS в сообщении моего вопроса. Вы можете увидеть мою слабую попытку вызвать функцию vb.net, но она, к сожалению, не вызвана. Пожалуйста, сделайте комментарий с дополнительной информацией. Спасибо. –

+0

@BryanTorres надеется, что это поможет. – codechurn

+0

Благодарим вас за это. Это определенно заставляет меня возглавить в правильном направлении. Для этого проекта я использую AngularJS вместо JQuery. Если это не слишком сложно, можете ли вы перевести свой код на AngularJS? В любом случае, спасибо вам большое. –

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