ASP .NET MVC3 ajax вызывает одну и ту же функцию с разных страниц - PullRequest
1 голос
/ 01 декабря 2011

Как я могу вызвать одно и то же действие, используя ajax с разных страниц?

type: 'POST',
  url: 'Notification/GetRecentNotifications/'

В настоящее время я использую код выше для вызова своего действия.Это работает для домашней страницы моего приложения, но когда я перехожу на другую страницу, это не работает.Кто-нибудь может дать мне решение?Спасибо, прежде чем.

Ответы [ 2 ]

3 голосов
/ 01 декабря 2011

Вот что я обычно делаю, чтобы указать, какой контроллер и действие вызывать в вызове ajax jquery ...

 $.ajax({
            type: "POST",
            url: '@(Url.Action("Action", "Controller"))',
            success: function (data) {

            }
        });

Используйте Url.Action() для создания ссылок

0 голосов
/ 02 декабря 2011

Поместите код в файл ajax.js в каталоге сценариев, а затем укажите его на страницах, где вам нужно использовать методы в этом файле. Затем поместите любую логику на стороне сервера для ваших вызовов ajax в AjaxController Например:

ajax.js

function foo() { 
    var model = { };

    $.ajax({
        url: '@Url.Action("Foo", "Ajax")',
        type: "POST",
        data: JSON.stringify(model),
        success: function(data) { 
            alert(data);
        },
        error: function(data) {
            alert(data);
        }
    });    
}

AjaxController.cs

public class AjaxController : Controller
{
    [HttpPost]
    public JsonResult Foo(FooModel model)
    {
        string message = _ajaxService.Foo(model);

        return Json(message);
    }
}

В приведенном выше примере _ajaxService - это объект уровня сервиса, который содержит логику для обработки ваших запросов ajax. Ниже описано, как использовать функцию на ваш взгляд:

SomeView.cshtml

<script type="text/javascript" language="javascript" src="@Url.Content("~/Content/Scripts/ajax.js")"></script>
<script type="text/javascript" language="javascript">
    $(document).ready(function () {
        $('#button').click(foo);
    });
</script>

Если есть дополнительная логика для передачи данных в метод ajax, который используется повторно, вы, вероятно, должны поместить его в частичное представление и ссылаться на него из каждого представления, в котором оно нуждается.

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