Dona Tas
Dona Tas

Reputation: 3

calling c# function in angularjs

Im trying to create simple form, which will pass variables to C# method, which then will add whem to database.

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;
    }

This method is in C:\NTPortal\NTportal\NTportal\Controllers

When I tried to call it in angularjs Controller:

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 is in C:\NTPortal\NTportal\NTportal\Views\Home

An error I get, is GET http://localhost:2016/Controllers/UserController.cs/Add?email=f@&password=bandymas1&username=f 404 (Not Found)

Any help would be appreciated

Upvotes: 0

Views: 4215

Answers (2)

Son B. Nguyen
Son B. Nguyen

Reputation: 1

I think you should add [HttpGet] or [HttpPost] Method Attribute above Add function like:

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

Upvotes: 0

Tiago &#193;vila
Tiago &#193;vila

Reputation: 2867

Try this, you have to put the url to your action:

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

Instead of http://localhost:12345, put your url.

Upvotes: 1

Related Questions