MVC avec Rasoir: comment actualiser partielle sur la page cliquez sur?

Ce projet utilise MVC3 et Rasoir. Nous avons une longue page, et les données sont à venir à partir d'un ordinateur central de la base de données via des services WCF, si nous voulons limiter ce qui est chargé en même temps. De base de données est chargé au chargement de la page, mais ensuite il y aura un peu de vrd pour des données supplémentaires. Nous utilisons @Html.Partielle(pagename) pour le rendu d'une page partielle dans le div. Cette partie du ViewModel sera initialement vide, donc pas de données s'affiche.

Nous voulons un utilisateur, cliquez sur pour accéder à une méthode de Contrôleur, d'appeler un autre service, et de remplir une section du ViewModel avec plus de données. Puis actualisez cette section de la page avec les données.

Comment puis-je actualiser HTML.Partielle(pagename) sur un clic de l'utilisateur? J'ai essayé un appel Ajax à l'URL appropriée, mais il n'a pas d'actualiser l'affichage.

Edit: voici mon code, en essayant d'utiliser les suggestions de Darin Dimitrov ci-dessous.

Mon ViewModel:

namespace Project.ViewModel
{
    public class AllData
    {
        public string Id { get; set; }
        public BasicData Basics { get; set; }
        public ContactInfo ContactPoints { get; set; } //mainframe data
    }
}

La page Principale:

@model Project.ViewModel.AllData

 <script type="text/javascript">
    $(function () {
        $('#loadFromMainFrame').click(function (e) {
            var url = $(this).data(url);
            $('#MainframeContents').load(url);
        });
    });
</script>

<div id="basics">
    <div>
       @Html.DisplayFor(model => model.Basics.FirstName)
    </div>

    <div>
         @Html.DisplayFor(model => model.Basics.LastName)
    </div>     
</div>

<button id="loadFromMainFrame" data-url="@Url.Action("GetFromMainFrame")">Load from mainframe</button>
<div id="MainframeContents">
    <p>Contact Info will go here</p>
</div>

Le Contrôleur:

    public ActionResult Details(string id)
    {
        BasicData basicdata = new BasicData();
        basicdata.FirstName = "Arya";
        basicdata.LastName = "Stark";
        AllData allData = new AllData();
        allData.Basics = basicdata;
        return View(allData);
    }

    public ActionResult GetFromMainframe()
    {
        AllData allData = new AllData();
        allData.ContactPoints = getting data from mainframe
        return PartialView("ContactsSection", allData);
    }

La page de Détails qui rend. En cliquant sur le bouton exécute le script, mais le contrôleur n'est pas atteint. Ce que je fais mal?

Je vais aussi poster quelques autres tentatives que j'ai fait...

Il semble que vous devriez corriger la syntaxe du script jquery: var url = $(this).de données('url'); Notez les guillemets. Quelle est la valeur de la variable d'url tenir après cela?
Qui était-il! Merci beaucoup!!

OriginalL'auteur DZx | 2013-07-24