2017-04-10 2 views
0

Ich versuche, einfache Form zu erstellen, die Variablen an C# -Methode übergeben wird, die dann Wem zur Datenbank hinzufügen wird.Aufruf von C# -Funktion in angularjs

public static bool Add(string username, string password, string email, string ip) 
    { 
     User newUser = new User { id = HomeController.db.Users.Count() + 1, createdOn = DateTime.Now, email = email, ipAddress = ip, isDeleted = false, password = password, username = username, info = new AdditionalInfo(), notices = new List<Notice>() }; 
     newUser.address.user = newUser; 
     if (!HomeController.db.Users.ToArray().Contains(newUser, new EqualByData())) 
     { 
      HomeController.db.Users.Add(newUser); 
      HomeController.db.SaveChanges(); 
     } 
     else return false; 
     return true; 
    } 

Diese Methode ist in C:\NTPortal\NTportal\NTportal\Controllers

Als ich versuchte, es in AngularJS Controller zu nennen:

if (!$scope.email_bad && !$scope.pass_bad && !$scope.pass_not_match) { 
     console.log('no errors') 
     var Add = function (username, password, email, ip) { 
      var config = { 
       params: { 
        username: username, 
        password: password, 
        email: email, 
        ip: ip 
       } 
      } 
      $http.get('../../Controllers/UserController/Add', config) 
      .success(function (data) { 
       if (data) { 
        alert('Vartotojas priregistruotas'); 
       } 
      }) 
      .error(function (error) { 
       alert('Ivyko klaida'); 
      }) 
     } 
     Add($scope.username, $scope.password, $scope.email, ipAddress); 
    } 

Angular ist in C:\NTPortal\NTportal\NTportal\Views\Home

Ein Fehler, den ich bekommen, ist GET http://localhost:2016/Controllers/UserController.cs/[email protected]&password=bandymas1&username=f 404 (Not Found)

Jede Hilfe würde geschätzt werden diese

+0

die‘CS- Entfernen Sie aus dem Ende des Controller-Namen in Ihrer URL erhalten:' $ http .get ('../../ Controller/UserController/Add', config) ' –

+0

Versucht es, dasselbe Ergebnis –

+0

Sie können auch nach der Auflösung Ihrer URL suchen (z. B. Lassen Sie Ihre Ansicht eine JavaScript-Variable erstellen, um die aufgelösten zu halten Pfad. 'var Pfad = @ URL.Action (" Hinzufügen "," Benutzer ");' –

Antwort

1

Versuchen Sie, müssen Sie die URL Ihrer Aktion setzen:

$http.get('http://localhost:12345/User/Add', config) 

Statt http://localhost:12345, Ihre URL setzen.

+0

'GET http: // localhost: 2016/Benutzer/Hinzufügen? Email = f @ & password = bandymas1 & username = f 404 (nicht gefunden)' –

+0

Versuchen Sie, die statische von Ihrer Aktion zu entfernen. –

0

Ich denke, Sie sollten hinzufügen [HttpGet] oder [Httppost] Methode Attribut oben Add-Funktion wie:

[HttpGet] 
public static bool Add(..) 
{ 
//... 
}