2013-07-26 2 views

ответ

0

Когда пользователь запрашивает страницу, веб-страница сначала находит соответствующий контроллер с использованием маршрутов. Затем он завершает весь код сервера C#. Затем он заполняет html-шаблон и отправляет html пользователю. Вы не можете вызвать контроллер из режима просмотра на сервере. Но когда просмотр страницы работает на браузере клиента, вы можете сделать AJAX вызов на сервер, а затем отправить данные на контроллер

Вот пример

http://www.codeproject.com/Articles/41828/JQuery-AJAX-with-ASP-NET-MVC

Позвольте мне сузить шаги браузером.

  1. запросы пользователей страница

    /Home/Index

  2. сервер ASP MVC отправляет запрос маршрутов. Маршрут по умолчанию находится в файле global.aspx.
  3. Маршрут вызова соответствующего контроллера/действия.
  4. Действие запускает код сервера и, необязательно, отправляет данные в представления.
  5. Шаблоны заметок заполнены и HTML/css/javascript отправляется клиенту.
  6. После загрузки страницы в браузере или после щелчков пользователя вы можете отправить запрос AJAX обратно на сервер
0

Вам просто нужно, чтобы сделать его ActionResult. Кроме того, если вы используете AJAX POST, действие должно быть отмечено атрибутом HttpPost. Попробуйте следующее:

[HttpPost] 
public ActionResult test() 
{ 
    return Content("It works"); 
} 

you view.cshtml Добавить тег javascript.

// Sample Ajax Request. 
$.ajax({ 
      url: '@Url.Action("test", "Home")', 
      data: {dealerID: dealerID}, 
      type: 'POST', 
      success: function(data) { 
      alert(data); 
     } 

}); 

Примечание:

  • Url.Action имеет параметры контроллера/действий. сначала должно быть «ActionName», затем «ControllerName».
  • Для Url.Action, если класс контроллера является «HomeController», тогда вам нужно просто «Главная»
  • Параметры JQuery, когда запрос успеха показывает предупреждение. - должен быть успешным: функция (данные) {}.
0
@Html.ActionLink("LinkText", "ActionName", "ControllerName")