J'ai une page de recherche que s'il y a des résultats dans la liste il passe cette liste à une vue. Cependant, s'il n'y a aucun résultat, je veux envoyer le texte recherché à une vue sans résultats trouvés. Comment pourrais-je m'y prendre?Comment transmettre une chaîne à une vue partielle dans ASP.NET MVC?
Répondre
Le texte recherché doit être disponible dans le modèle renvoyé à la vue. Ensuite, vous avez deux options -
L'utilisation de RenderPartial passera la vue retournée à la vue partielle afin que vous puissiez accéder à la valeur que vous voulez à partir de là.
Html.RenderPartial("PartialView");
Vous pouvez passer la chaîne comme modèle pour la vue partielle en utilisant
Html.RenderPartial("PartialView", Model.SearchedText);
Ce qui pourrait donner un sens si vous voulez utiliser la vue partielle aucun résultat avec différents modèles.
<%Html.RenderPartial("SimpleTrustGridViewer", ViewData["departmentGrid"]); %>
cette passe un objet Viewdata [ "departmentGrid"] (ce qui provient de vidéotex de la vue partielle non) à la SimpleTrustGridViewer vue partielle.
simplifié:
<%Html.RenderPartial("myUserControl", myString); %>
Et votre vue partielle hérite comme ceci:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<string>" %>
Ensuite, dans votre vue partielle 'Model' sera la chaîne passée.
Vue partielle sauf si vous lui transmettez autre chose explicitement, a le même modèle que la vue parent.
Le ViewDataDictionary transmis du contrôleur à la vue sera le même que celui transmis de la vue à la vue partielle. Donc, si la chaîne que vous voulez transmettre se trouve dans ViewDataDictionary, vous n'avez pas besoin de la transmettre.
<%=Html.RenderPartial("NorResultFound")) %>
Mais vous pouvez utiliser la même vue que les résultats étaient ou non:
<%if (Model.ResultCount!=0){ %>
<%foreach(var result in Model){ %>
<%= // display results %>
<%}}%>
<%else {%>
<p>There is no results for <%=ViewData["keyword"]%> </p>
<%} %>
Je suis d'accord avec vous, mais je préfère utiliser un modèle fortement typé au lieu de mixin 'ViewData et le modèle. Mon modèle aurait 2 accessoires (refactoring code amical: D), class SearchResult { public IList
Deux façons (? Vous parlez de vues, pas une vue partielle droite) 1) dans votre contrôleur tout appeler une vue différente dans le cas où aucun résultat ne passe une chaîne comme modèle 2) créer un modèle contenant un état de recherche (trouvé x éléments, aucune correspondance trouvée, etc ...) et une liste de résultats dans la même vue, permettant le vue pour rendre les différents résultats avec une instruction switch.
J'ai essayé ceci et je n'ai pas réussi à le faire fonctionner. Dire que j'ai
<div id="SearchBar">
<% using (Html.BeginForm("IndexNoJavaScript", "Home"))
{%>
<%= Html.TextBox("SearchTextBox", ViewData["SearchText"]) %>
<input type="submit" value="Search" /> <% } %>
</div>
<% Html.RenderPartial("SearchResults"); %>
Et lorsque je tente d'afficher le texte de recherche dans ce point de vue comme ceci:
<%= Html.TextBox("SearchedText", ViewData["SearchText"]) %>
Ma zone de texte est vide.
Vous pouvez utiliser l'action jquery et load()
sur une balise div, en utilisant l'utilisation partielle; le résultat est similaire. La méthode load()
ajax appelle le contrôleur avec le texte que vous voulez. comme:
$('#divId').load('url/'+ serch content);
- 1. asp.net mvc paramètre de la page à une vue partielle
- 2. Vue partielle ASP.NET MVC avec formulaire
- 3. ASP.NET MVC - Comment obtenir une action en cours dans une vue partielle?
- 4. asp.net MVC vue partielle contrôleur action
- 5. Exécuter Javascript à l'intérieur d'une vue partielle dans ASP.NET MVC
- 6. comment ajouter une page code-behind à une vue ou à une vue partielle
- 7. Détermination du nom de la vue actuelle dans une vue partielle dans ASP.NET MVC
- 8. Comment inclure une vue partielle dans un formulaire Web
- 9. ASP.NET MVC: comment afficher une vue partielle sur toutes les vues sauf une?
- 10. Comment recharger un div avec une vue partielle dans ASP.NET MVC en utilisant jQuery?
- 11. Chargement d'une vue partielle dans MVC ASP.Net en utilisant jQuery
- 12. Afficher une action qui renvoie une vue partielle dans une vue
- 13. Comment utiliser une méthode d'extension dans une vue ASP.NET MVC?
- 14. validation partielle ASP.NET MVC
- 15. Comment filtrer les données dans une vue partielle MVC à l'aide de jQuery
- 16. ASP.NET MVC vue partielle et nom de l'action de formulaire
- 17. Liste des types personnalisés ASP.NET MVC en vue partielle
- 18. ASP.NET MVC - Comment transmettre des données FormCollection dans une publication à une autre action?
- 19. Comment ajouter du JavaScript à une vue ASP.NET MVC?
- 20. Comment puis-je obtenir l'utilisateur (IPrincipal) à partir d'une vue partielle dans ASP.NET MVC?
- 21. Injecter une chaîne dans un javascript sur une vue mvc asp.net
- 22. Convertir C# en VB.Net - Utiliser MVCContrib Blockrenderer pour rendre une vue partielle à une chaîne
- 23. Comment regrouper des données dans une vue ASP.NET MVC?
- 24. Champ ASP.NET MVC en lecture seule basé sur une action en vue partielle
- 25. ASP.NET MVC retourner une vue différente
- 26. HandleError avec une vue partielle fortement typée
- 27. asp.net MVC Handle Réaction de retour partielle
- 28. Servir une vue en tant que fichier dans asp.net mvc
- 29. Ajax.ActionLink, comment envoyer l'objet sélectionné dans la vue partielle? asp.net mvc
- 30. ASP.NET MVC RedirectToAction Transmettre une valeur de paramètre incorrecte?
Je devais l'ajouter comme partie du modèle. Maintenant, j'ai besoin de refactoriser mon code :) – ddd