mvc passant de plus d'un des paramètres à vue partielle
Je voudrais passer plus d'un paramètre à la vue partielle. À la suite de
<% Html.RenderPartial("Details", Model.test, new ViewDataDictionary { { "labelName", "Values1" }, {"header", "Header1"}, {"header2", "Header2"}}); %>
code, j'ai des message d'erreur
) manquant.
Quel est le problème?
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<MvcUI.Models.Label>>" %>
<%var label = ViewData["labelName"];%>
<%int count = 0; %>
<%if (Model!=null) {%>
<% foreach (var model in Model){ %>
<%if (!String.IsNullOrEmpty(model.Name))
{%>
<li>
<%: Html.Hidden((label)+".Index", count.ToString())%>
<%: Html.TextBox((label)+"[" + (count) + "].Name", model.Name, new { Style = "width:280px" })%>
<%: Html.Hidden((label)+"[" + (count++) + "].ID", model.ID, new { Style = "width:280px" })%>
<input type="button" value = "Delete"/>
</li>
<%}
%>
<%} %>
<% } %>
Cette ligne de code fonctionne très bien pour moi.
OriginalL'auteur learning | 2010-08-30
Vous devez vous connecter pour publier un commentaire.
Au lieu d'utiliser le ViewDataDictionary ne pouvez-vous pas simplement ajouter les valeurs requises pour le modèle:
et puis tout simplement:
Autre que qu'il n'y a rien de mal avec votre syntaxe. L'erreur que vous obtenez est ailleurs:
Mise à JOUR:
Maintenant que vous avez indiqué votre code, permettez-moi de vous suggérer un nettoyant approche à l'aide de l'éditeur de modèles.
Commencer par la définition d'un modèle:
Un contrôleur qui va remplir ce modèle:
Le point de vue (
~/Views/Home/Index.aspx
):et, enfin, l'éditeur de modèle (
~/Views/Home/EditorTemplates/Label.ascx
):Comme vous pouvez le voir, à l'aide de l'éditeur de modèles, vous n'avez plus à vous soucier de nommer les entrées, le maintien et l'augmentation des indices, l'écriture de boucles, de toutes les personnes sujettes à erreur choses sont traitées par le cadre automagiquement.
Une fois que j'ai passer qu'un seul paramètre, il fonctionne très bien avec le texte suivant: <% Html.RenderPartial( "Détails", Modèle.test, de nouvelles ViewDataDictionary { { "labelName", "Values1" } } ); %> !
L'erreur est à la ligne 5 de
Details.ascx
et pas à la façon de vous inclure l'partielle. Qu'avez-vous sur cette ligne?Veuillez voir dans la partie code, les détails ajoutés
Encore bonne. Fonctionne très bien sur mon PC. Il doit y avoir quelque chose que vous n'avez pas indiqué.
OriginalL'auteur Darin Dimitrov