Je suis en train de créer un formulaire de page unique pour créer un «élément de travail». L'une des propriétés est une liste déroulante pour 'type d'élément de travail'.Rendering vue partielle dynamiquement dans ASP.Net MVC3 Razor en utilisant Ajax appel à l'action
En fonction du type d'élément de travail, l'utilisateur peut avoir besoin de fournir des informations supplémentaires dans une grille d'attributs de style paire-valeur-nom (feuille de propriétés).
Je souhaite effectuer un rendu dynamique de la feuille de propriétés dès qu'un type d'élément de travail est sélectionné ou modifié. Une fois que l'utilisateur fournit toutes les informations, il clique sur soumettre pour créer l'élément de travail.
C'est ce que j'ai jusqu'à présent:
@using (Ajax.BeginForm("AttributeData", new AjaxOptions() { UpdateTargetId="AttributeDataCell" }))
{
<div style="float:left">
@{
Html.RenderPartial("CreateWorkItemPartialView");
}
</div>
<div id="AttributeDataCell" style="float:right">
@Html.Action("AttributeData", new {id = 1})
</div>
}
L'action AttributeData dans le contrôleur rend simplement la vue partielle:
public ActionResult AttributeData(int id = 0)
{
var attributes = _workItemDataService.ListWorkItemTypeAttributes(id);
return PartialView("EditWorkItemAttributesPartialView", attributes);
}
Maintenant, je voudrais brancher jusqu'à présent au goutte à l'événement de sélection de la liste déroulante afin que la vue partielle redevienne dans la cellule du tableau ci-dessus à chaque changement de sélection. Je voudrais passer dans la valeur sélectionnée en tant qu'ID. Un moyen consiste à forcer le formulaire à se soumettre (et donc à rendre).
Si c'est la bonne approche, comment procédons-nous? Esp., Comment faisons-nous seulement la feuille de propriétés à rendre?
S'il existe un meilleur moyen d'obtenir ce qui précède, veuillez l'indiquer.
Merci
Merci. Comment puis-je obtenir la valeur de l'élément sélectionné dans la liste déroulante? Au lieu de form.serialize, peut-être pouvons-nous passer quelque chose comme {'id': id}? –
Mise à jour: dans la requête ajax, j'ai donné l'URL spécifique à la méthode et la valeur de l'id dans les données, (j'ai également changé de AjaxForm à HtmlForm) et tout fonctionne très bien. Dieu merci! .... Merci Darin. –
Pourriez-vous mettre à jour cette question avec le code de travail? C'est précisément ce que je ne parviens pas à réaliser :) – M05Pr1mty