ASP.NET MVC: снова войти в контроллер со страницы через ajax? - PullRequest
0 голосов
/ 03 декабря 2009

кто-нибудь может помочь?

Я только что запустил asp.net mvc, и он все работает .. захожу в мой контроллер и затем отправляю представление ... Я также пишу здесь журнал ...

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

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

Есть идеи?

Заранее спасибо

Ответы [ 6 ]

1 голос
/ 03 декабря 2009

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

Взгляните на это сообщение, которое я сделал

1 голос
/ 03 декабря 2009

Вы определенно можете сделать это, просто сделав еще один 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 голос
/ 03 декабря 2009

Что-то вроде следующего с jQuery:

$.post('/ControllerName/ActionName', {}, function(result) {
    // handle result here...
});
1 голос
/ 03 декабря 2009

Ну, если вы хотите сделать ajax с контроллером, вы можете сделать .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 голос
/ 03 декабря 2009

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

1 голос
/ 03 декабря 2009

Вы на правильном пути.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...