2015-02-27 5 views
0

Я хочу вызвать метод GetAccount с моего контроллера AccountController.cs, на моей фабрике javascript LoginFactory.js. Что-то вроде этого:

AccountController.cs:Вызов метода C# из javascript

public Account GetAccount(string userName) 
    { ... } 


LoginFactory.js:

if(x>y) { 
    var account = <%AccountController.GetAccount(someParam);%> 
} 


Я попытался с помощью [WebMethod] и Ajax, но я могу» t заставить его работать ... Я получаю ответ 404. Любые мысли будут оценены.

+2

Не могли бы вы выслать код вашего запроса Ajax? И вы проверили сообщение [this] (http://stackoverflow.com/questions/18610042/call-c-sharp-method-from-javascript-with-parameter)? – Tachyon

+0

Вы не можете вызвать метод непосредственно с клиентской стороны на сервер. Вместо этого используйте службу или 'WebMethod'. Вы утверждаете, что это не работает, поэтому, пожалуйста, опубликуйте код, который не работает, как javascript, так и C#, иначе будет сложно определить, что не так. –

+1

Если вы получаете 404, почти наверняка, ваш веб-сервис не будет развернут на сервер, на который вы нажимаете, или вы попадаете на неправильный сервер. Я бы посмотрел на трассировку Fiddler/Firebug, чтобы убедиться, что это правильный путь для вашего сервера IIS. –

ответ

0

Предполагая ваш метод GetAccount может быть достигнуто на /Account/GetAccount при запуске вашего приложения, вы можете использовать следующее:

$.ajax({ 
    type: 'GET', 
    url: '/Account/GetAccount', 
    data: { 'username' : 'a-username' }, 
    dataType: 'json', 
    success: function(jsonData) { 
    alert(jsonData); 
    }, 
    error: function() { 
    alert('error'); 
    } 
}); 

Примечание - это зависит от JQuery.

Это приводит к тому, браузера сделать запрос на /Account/GetAccount как если бы вы сделали это, введя URL в строке URL, но, конечно, захватывает возвращаемый JSON для использования в клиентской стороны (JavaScript) сценарий.

Если это возвращает 404, стоит проверить вашу маршрутизацию.

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