2017-02-16 11 views
1

у меня есть это на мой контроллер:C# Как вызвать функцию MVC контроллер с помощью JavaScript или JQuery

[HttpPost] 
[ValidateAntiForgeryToken] 
public async Task<ActionResult> DeleteUser(UserViewModel viewModel) 
{ 
} 

У меня есть это на моем cshtml:

<input type="button" id="btnDelete" value="Delete" /> 

У меня есть это в моем файле JS :

$('#btnDelete').click(function (e) { 

}); 

Как вызвать функцию контроллера из js-файла?

+2

включают '@ Html.AntiForgeryToken()' в форме, что вы публикуете –

+0

@PrashanthBenny Как это дубликат конкретного antiforgery вопрос, если ОП, кажется, не знаю, как отправлять сообщение в контроллер в первую очередь или га, если используется форма? Как возник вопрос? Я уверен, что это какой-то дубликат, но не тот вопрос, насколько я могу судить. - Извини, если я что-то пропустил. – Nope

+0

Ответы на упомянутый выше вопрос, похоже, тоже отвечают на этот вопрос. возможно, я ошибаюсь ... :) –

ответ

1
$.post("Controller/CreateUser", dataToPost) 
      .done(function(response, status, jqxhr){ 
       // this is the "success" callback 
      }) 
      .fail(function(jqxhr, status, error){ 
       // this is the ""error"" callback 
      }); 

или

var data = { 
     username: $('#username').val().trim(), 
     password: $('#password').val() 
    }; 

$.ajax({ 
    type: "POST", 
    url: "Controller/CreateUser", 
    content: "application/json;", 
    dataType: "json", 
    data: JSON.stringify(data), 
    success: function(d) { 

    }, 
    error: function (xhr, textStatus, errorThrown) { 

    } 
}); 

пс: составляют объект данных в соответствии со свойствами UserViewModel.

+0

Я ударил ошибку: POST localhost: 56110/user/controller/DeleteUser – Enix

+0

Я покинул контроллер, потому что я не знал имя вашего контроллера. Просто удалите его и поместите правильное имя контроллера –

0

Внутри кнопку мыши, выполнить АЯКС Запросить

$('#btnDelete').click(function (e) { 
    $.ajax({ 
     type: "POST", 
     url: 'controller/DeleteUser', 
     dataType: "json", 
     success: function(data){ 
     //html content 
     }, 
    }); 
} 
+0

Почему вы задаете 'data:" Json "'? Может быть, вы имеете в виду 'dataType'. 'dataType' - тип данных, которые вы ожидаете от сервера. 'data' - данные, которые вы будете отправлять на сервер. –

+1

жаль, что это должно быть тип данных – kamprasad

+0

я ударил ошибку: POST HTTP: // локальный: 56110/пользователь/контроллер/DeleteUser 404 (не найден) – Enix

0

Это очень легко получить доступ к любому методу контроллера с помощью Ajax метода поста.

Как здесь я получаю государство в соответствии с выбранной страной, используя имя методы «RegionesController» «GetStates» и здесь я передаю CountryId, чтобы государства в соответствии с этим идентификатором.

EX:

function GetStates() { 
    $.ajax({ 
     type: "POST", 
     async: false, 
     url: abp.appPath + 'Regiones/GetStates?CountryId=' + $("#ddlCountry").val(), 
     success: function (result) { 
      //return data or object 
     }, 
     error: function (err) { 
      abp.notify.info(err.statusText); 
     } 
    }); 
} 
+0

Отличная работа Arpit ..................... –