2009-12-03 3 views
0

Может ли кто-нибудь помочь?ASP.NET MVC: снова войдите в контроллер со страницы через ajax?

Я только начал asp.net MVC и его все работает .. ввод мой контроллер и затем посылать мнение ... Я также пишу журнал здесь ....

страница, которая загружается как довольно немного jquery и javascript, поэтому мне нужно иметь возможность войти в контроллер снова, желательно, не postback, а через ajax или подобное - возможно ли это?

Или я вызываю действие на контроллере из javascript, я полагаю, что мой вопрос должен быть - ???

Любые идеи?

Заранее благодарен

ответ

1

Ну, если вы хотите сделать Аякса против контроллера вы можете сделать .ajax с JQuery, как это:

$.ajax({ 
       type: "GET",//type of verb to use POST/GET 
       data: ({ Data:data }),//Send some data to the controller 
       url: '<% = Url.Action("MEthod","Controller")%>',//URL of the resource 
       dataType: "text/html", //Define the type of spectated results(JSON,Html,Xml) 
       timeout: 8000, //How much time to wait for the asynchronous call to complete 
       error: function() { 
        alert('ERROR'); 
       }, //end error 
       success: function(html) { 
       //Here do something with the result hold in the html variable 
       } //end succes 
      }); //end ajax 

Для полной справки вы можете посетить Jquery ДОКУМЕНТАЦИЯ http://docs.jquery.com/Ajax

1

Ваш правильный путь.

Возможности маршрутизации MVC позволяют легко «ввести контроллер» снова. Просто выполните запрос POST или GET, используя методы jQuery ajax.

Я бы опубликовал код, но я не уверен, что вы пытаетесь сделать.

1

Для начала у вас есть помощники Ajax как часть MVC Framework, которые имеют всевозможные помощники для задач ajax MVC, проверьте их. В противном случае контроллеры и действия являются нормальными запрашиваемыми URL-адресами из любого используемого вами инструмента ajax.

1

что-то вроде следующие с JQuery:

$.post('/ControllerName/ActionName', {}, function(result) { 
    // handle result here... 
}); 
1

вы можете определенно сделать это просто сделать еще один GET или POST в контроллер/действие вы хотите позвонить , В действии вы можете определить, поступает ли запрос от Ajax с помощью метода расширения Request.IsAjaxRequest(); Это позволит вашему действию реагировать по-разному на запросы AJAX, чем обычно.

Например, у меня есть TwitterController, который читает мою ленту RSS на первой странице. В моем действии я делаю следующее:

public ActionResult Feed(string id) 
{ 
    if (Request.IsAjaxRequest()) 
    { 
     // return some pretty Json of my tweets 
     return Json(GetMyFeeds(id)); 
    } 
    else 
    { 
     // I don't want to respond to Non-AJAX requests. 
     return RedirectToAction("Index", "Home"); 
    } 
} 
1

Вы можете легко сделать это, используя JQuery или встроенные библиотеки ASP.NET Ajax. Он позволяет вам возвращать данные с контроллера или вы можете фактически использовать частичные виды.

Посмотрите на this post I made

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