2011-03-17 5 views
0

J'ai un contrôleur qui rend une vue (~/Views/Component/Create.aspx) aucun problème.Y compris plusieurs vues dans une page

Lorsque ce point de vue s'affiche, je voudrais soit:

(1) quand un utilisateur clique sur un lien, dans un pop-up modal (pas de problème), afficher une vue (PAS VUE PARTIELLE) mais une vue aspx complète de (~/Views/TransportType/Index.aspx)

Pourquoi? Parce que (~/Views/TransportType/Index.aspx) est 100% comme il devrait être et il a lui-même rendu des vues partielles du contrôleur TransportType. Ainsi, dans un écran, je donne à l'utilisateur la possibilité de (Insérer/Mettre à jour/Editer/Supprimer) sans passer par divers écrans.

ou

(2) dans le (~/Vues/composants/Créer) i arrangerais pour rendre le <% = Html.RenderAction ("index", "TransportType")%> quelque part dans la page dans un div que je peux basculer en utilisant JavaScript. Ce n'est que lorsque j'essaie d'utiliser cette approche que j'obtiens le CS1502: La méthode la mieux surchargée pour 'System.IO.TextWriter.Write (char)' a des arguments invalides.

Remarque: Je peux naviguer directement sur www.MySite.com/TransportType/Index sans problème, mais si j'essaie d'utiliser la méthodologie décrite au point 2 ci-dessus, j'obtiens l'erreur suivante ci-dessus.

J'ai tout essayé. J'ai investi toute ma journée pour essayer de comprendre cela. Je peux facilement mettre en œuvre une solution rapide, mais cela annulerait tout le point de vente que je suis en train de convaincre ma société par rapport à MVC et ses avantages sur le code-behind. S'il vous plaît aidez-moi ou je peux avoir à revenir au monde de code ASP.NET derrière.

Bottom line:. « Est-ce que quelqu'un sait comment rendre des vues dans les vues Ou suis-je pose la question de mal

Voici un code:

Répondre

1

Si vous utilisez jquery-ui vous pouvez utiliser la méthode de dialogue .

par exemple:

<a href="<%=Url.Action("Index","TransportType") %>" id="transports">Types</a> 
<div id="window"></div> 
<script type="text/javascript"> 

$(document).ready(function(){ 
    $("#transports").click(function(){ 
     $("#window").load(this.href).dialog({title:"transport list"}); 
     return false; 
    }); 
}); 
</script> 

Edit: Pour utiliser le Html.RenderAction ne pas mettre = avant et met un ; à la fin car il ne retourne rien: <% Html.RenderAction("Index", "TransportType"); %>

+0

Grégoire, merci un million! La correction Html.RenderAction était ce dont j'avais besoin. Cependant, en utilisant l'approche jQuery, quand je clique sur l'hyperlien "Types", je suis redirigé vers le TransportType/Index réel. Y a-t-il quelque chose que tu as oublié? –

+0

Gregorie, j'obtiens les erreurs suivantes: $ ("# window"). Load. (This.href) .dialog n'est pas une fonction. –

+0

@Robert Green: avez-vous inclus le script jquery-ui? – Gregoire

Questions connexes