Может ли ASP.NET MVC возвращать ответ javascript, как может Ruby on Rails? - PullRequest
3 голосов
/ 20 октября 2010

Я погружаюсь в ASP.NET MVC и прохожу с фоном Ruby on Rails.Я пытаюсь понять, как ASP MVC обрабатывает функциональность AJAX, и после прочтения некоторых учебных пособий на веб-сайте ASP кажется, что они реализуют функциональность AJAX совсем по-другому.Один из способов, которыми RoR обрабатывает функциональность AJAX, - это возвращение встроенного в ruby ​​кода javascript, который выполняется, как только он получен браузером.Это делает реализацию AJAX действительно простой и веселой.Может ли ASP.NET MVC возвращать ответ javascript?

Ответы [ 3 ]

4 голосов
/ 20 октября 2010

просто пользователь вернуть JavaScript (скрипт)

Вы должны выполнить java-скрипт вручную в представлении

Чтобы быть более точным, вы можете сделать действие контроллера возвращаемым типом JavaScriptResult

3 голосов
/ 20 октября 2010

То, о чем вы говорите, называется генератором javascript в мире RoR, и в мире ASP.NET MVC нет аналога.Вот пост в блоге , который иллюстрирует основы реализации RJS-подобного Rails для ASP.NET MVC (пост блога использует prototypejs, но может быть легко адаптирован для работы с jquery).


Вот еще один подход с использованием jquery:

public ActionResult Foo()
{
    return Json(new { prop1 = "value1", prop2 = "value2" });
}

и использование:

$.getJSON('/home/foo', function(result) {
    // TODO: use javascript and work with the result here, 
    // the same way you would work in a RJS like template
    // but using plain javascript
    if (result.prop1 === 'value1') {
        alert(result.prop2);
    }
});
1 голос
/ 20 октября 2010

Также стоит взглянуть на JsonResult , который расширяет ActionResult.Я обычно использую это при выполнении AJAX-запросов на какие-либо данные.

...