Comment rendre fortement typé vues partielles en un point de vue ?
Je suis nouveau sur ce asp net mvc, mais a obtenu une solide expérience dans les formulaires web.
J'aimerais réaliser une page avec un menu à gauche de l'actif, que lorsque vous cliquez sur l'un des actifs les informations relatives à l'actif sont disponibles sur modifier à droite de la même page.
Maintenant je pense que j'ai besoin d'utiliser 2 fortement des types de vues partielles. 1 pour le menu de gauche, qui est de type Liste de l'Actif et 1 pour le panneau de droite de type Actif.
J'ai le menu de gauche, à ce jour
Contrôleur
public class AssetsController : Controller
{
//
//GET: /Assets/
public ActionResult Index()
{
var assets =Repo.getAssetList();
return View(assets);
}
}
Vue De Mise En Page
@model IList<CasWebSite.Models.Asset>
<!DOCTYPE html>
<html>
<head>
<title>title</title>
</head>
<body>
<h1>
Assets</h1>
@RenderBody()
</body>
</html>
Vue Index
@model IList<CasWebSite.Models.Asset>
@{
Layout = "_Layout.cshtml";
}
<ul>
@foreach (var asset in Model)
{
<li>@asset.Name </li>
}
</ul>
Alors, comment puis-je ajouter dans l'autre point de vue, dois-je créer une nouvelle vue partielle de type Actif, Ce qui serait le contrôleur de ressembler à je encore goto la page en allant à l'url /actifs, et comment puis-je transmettre des valeurs entre les 2 vues partielles, car j'ai besoin de savoir qui de l'actif a été sélectionné sur la gauche à modifier?
Grâce
OriginalL'auteur David Kethel | 2012-06-29
Vous devez vous connecter pour publier un commentaire.
Si j'ai bien compris vous avez une vue unique où vous souhaitez afficher la liste des actifs dans une vue partielle et une autre vue partielle de modifier l'actif lorsqu'il est sélectionné.
D'abord, vous devez créer deux vues partielles.
Actifs.cshtml (vue partielle)
EditAsset.cshtml (vue partielle)
Maintenant dans la vue principale
Index.cshtml
vous devez appeler leAssets.cshtml
à l'aide deHtml.Partial/Html.RenderPartial
tandis que l'autre sera appelée lors d'un clic de lien actif.Index.cshtml
Noter que vous devez également disposer d'un espace réservé appelé
editAssetContainer
où vous allez pour afficher le formulaire d'édition.Maintenant l'attente de la chose, c'est comment vous pouvez rendre le formulaire d'édition dans l'espace réservé à cliquer sur des liens actifs. Vous pouvez le faire par le biais de deux manières: soit directement à l'aide de jquery ou de l'utilisation de Ajax.ActionLink. Vous pouvez créer tous les liens actifs dans le
Asset.cshtml
vue partielle que les liens ajax. )Si vous êtes en utilisant Ajax.ActionLink n'oubliez pas d'inclure le discret ajax library)Ex. de l'Ajax.ActionLink
Dans les deux cas, vous avez besoin d'une action dans le contrôleur qui renvoie la
EditAsset.cshtml
.Mise à JOUR:
Il y a deux façons vous pouvez charger le modèle dans
Assets.cshtml
vue partielle. La première approche est que vous pouvez créer un modèle d'affichage qui contient la liste des actifs de propriété et de vous fortement du type de laindex
afficher avec ce modèle de vue. Ensuite, vous pouvez appeler laHtml.Partial
passage de l'actif.Ex.
Index.cshtml
La deuxième approche est que vous pouvez avoir un enfant d'action qui obtient la liste des actifs de base de données et le retour de la vue partielle. Dans ce cas, vous n'avez pas besoin d'aller fortement tapant la
Index
vue.Vous pouvez appeler l'enfant à l'action de l'
Index
commeVous pouvez utiliser la mieux adaptée pour vous.
Désolé, j'ai manqué de le dire. J'ai mis à jour ma réponse.
OriginalL'auteur VJAI
Vous êtes sur une bonne voie, vous devez créer deux vues partielles et de les placer dans une vue parent. Vous pouvez également envisager des appels AJAX au sein de la vue de mettre à jour des partiels.
Voici un post qui explique les étapes et comment votre point de vue-modèle de regarder au - Vues partielles en ASP.NET MVC 3 w/le moteur de vue Razor
OriginalL'auteur EL Yusubov