2010-11-24 6 views
0

J'essaie de comprendre comment fonctionnent les contrôleurs. Évidemment, lorsqu'une page est chargée, le ActionResult Index() est appelé. Mais comment appelez-vous une autre fonction dans le contrôleur?ASP.NET MVC 2: Html.ActionLink une autre fonction dans le contrôleur?

J'ai essayé d'utiliser Html.ActionLink("Click Me", "ControllerFunction") mais il a juste cherché une page appelée "ControllerFunction".

Ce que je voudrais être en mesure de faire est d'appeler une fonction dans le contrôleur qui met à jour les données d'affichage, puis actualise la page (ou Ajax).

Comment cela est-il supposé fonctionner? Parce qu'en ce moment la seule fonction utile dans le contrôleur est Index()

Répondre

0

Controller:

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

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

puis dans la vue Index.aspx, vous pouvez avoir un lien et un div vide qui hébergera le résultat de la requête AJAX:

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

qui alors vous améliorer avec javascript (jquery dans mon cas):

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

Lorsque vous cliquez sur le lien une requête AJAX sera envoyée à /home/ajaxlink qui rendrait une vue partielle AjaxAction.ascx et insérer son contenu dans le résultat div.

+0

Mais à quoi sert la fonction de contrôleur? Tout ce qu'il fait est de retourner la vue, et de mon exemple, tout ce qu'il a fait était d'essayer de trouver une page similaire à "ajaxaction" ... – dcolumbus

+0

Le point est que cette fonction de contrôleur (appelée action) sera basée sur la requête de l'utilisateur manipuler le modèle, utilisez un référentiel pour extraire des données d'une base de données, effectuez beaucoup d'autres choses avant de renvoyer une vue, sauf si vous voulez que cette vue soit totalement statique. –

Questions connexes