Каков правильный шаблон для использования JQuery Ajax и ASP.Net Mvc? - PullRequest
36 голосов
/ 13 января 2009

Я очень новичок в фреймворке Mvc, а также в JavaScript и JQuery. Я пытаюсь понять, как правильно структурировать Ajax-вызовы.

Допустим, у меня есть кнопка «Проголосовать», похожая на ту, что вы видите в StackOverflow. Когда пользователь щелкает его, мне нужно обновить счетчик голосов в базе данных и вернуть новое значение в пользовательский интерфейс. В настоящее время я достигаю этого с помощью действия «VoteUp» на «PostsController», которое принимает «int postID» в качестве параметра.

public PostsController : Controller
{
    public ActionResult VoteUp(int postId)
    {
        //Increment Post Vote Count
        return Json(voteCount); //Return just the new vote count as a JSon result.
    }
}

Затем я вызываю этот метод через ajax, вызывая url "http://mydomain.com/posts/voteUp?postId=5". Затем я возвращаю JSon ActionResult с новым значением, чтобы обновить пользовательский интерфейс с помощью.

Это правильный способ реализовать это? Опять же, я совершенно новичок в javascript и jquery. Я привык делать все как обработчики событий кликов в веб-формах asp.net. Любое руководство будет оценено.

Ответы [ 2 ]

12 голосов
/ 13 января 2009

Да, похоже, вы поняли это правильно.

Обратите внимание, однако, что если вы измените postId на Id, вы можете позвонить с URL-адресом, таким как:

http://example.com/posts/voteUp/5

(С маршрутизацией по умолчанию.) Это вопрос личных предпочтений.

3 голосов
/ 13 января 2009

Я бы подошел к этому, используя jQuery и JsonResult Controller. Ваш код jQuery вызовет JsonResult, который передаст соответствующую информацию в код модели для обработки добавления нового голосования. Я написал краткое руководство по схожим понятиям, которое доступно на http://www.dev102.com/2008/08/19/jquery-and-the-aspnet-mvc-framework/

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