ASP.NET MVC 2: Html.ActionLink другая функция в контроллере? - PullRequest
0 голосов
/ 24 ноября 2010

Я пытаюсь выяснить, как работают контроллеры. Очевидно, что при первой загрузке страницы вызывается ActionResult Index(). Но как вы вызываете другую функцию в контроллере?

Я пытался использовать Html.ActionLink("Click Me", "ControllerFunction"), но он просто искал страницу с именем «ControllerFunction».

Я хотел бы иметь возможность вызывать функцию в контроллере, которая обновляет данные представления и затем обновляет страницу (или Ajax).

Как это должно работать? Потому что сейчас единственной полезной функцией в контроллере является Index()

Ответы [ 2 ]

0 голосов
/ 24 ноября 2010

Контроллер:

public HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult AjaxAction()
    {
        return View();
    }
}

, а затем в представлении Index.aspx вы можете иметь ссылку и пустой div, который будет содержать результат запроса AJAX:

<%: Html.ActionLink("ajax test", "ajaxaction", null, 
    new { id = "ajaxtest" })%>
<div id="result"></div>

который вы затем улучшите с помощью javascript (в моем случае - jquery):

$(function() {
    $('#ajaxtest').click(function() {
        $('#result').load(this.href);
        return false;
    });
});

Когда вы щелкнете по ссылке, AJAX-запрос будет отправлен на /home/ajaxlink, который отобразит частичное представление AjaxAction.ascx и вставитего содержимое в результате div.

0 голосов
/ 24 ноября 2010

вам явно не хватает основ MVC:)

взгляните на это великолепное введение в MVC: http://channel9.msdn.com/blogs/matthijs/aspnet-mvc-2-basics-introduction-by-scott-hanselman

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