Chargement de la Vue Partielle de JQuery ne montrant pas de MVC
Je vais avoir de problème pour faire ma vue partielle rendu ASP.Net MVC 1.0 lorsque je charge avec JQuery.
J'ai un contrôleur comme:
public ActionResult Index() {
return View(_invoiceService.FindAllInvoices());
}
public ActionResult InvoiceSearchResults() {
return PartialView("InvoiceSearchResults",_invoiceService.FindAllInvoices());
}
J'ai une Vue Index:
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Index
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<%= Html.Script("/scripts/InvoiceSearch.js") %>
<h2>Search</h2>
<div class="SearchBar">
</div>
<div class="SearchResults"></div>
<p><%= Html.ActionLink("Create New", "Create") %></p>
</asp:Content>
J'ai alors d'un PartialView:
<table>
<tr>
<th></th>
<th>InvoiceId</th>
<th>InvoiceNo</th>
<th>SupplierId</th>
<th>InvoiceDate</th>
<th>TotalValue</th>
<th>InputDate</th>
<th>PaymentDueDate</th>
<th>InvoiceStatusId</th>
<th>AuthoriserId</th>
</tr>
<% foreach (var item in Model) { %>
<tr>
<td>
<%= Html.ActionLink("Edit", "Edit", new { id=item.InvoiceId }) %> |
<%= Html.ActionLink("Details", "Details", new { id=item.InvoiceId })%>
</td>
<td><%= Html.Encode(item.InvoiceId) %></td>
<td><%= Html.Encode(item.InvoiceNo) %></td>
<td><%= Html.Encode(item.SupplierId) %></td>
<td><%= Html.Encode(String.Format("{0:g}", item.InvoiceDate)) %></td>
<td><%= Html.Encode(String.Format("{0:F}", item.TotalValue)) %></td>
<td><%= Html.Encode(String.Format("{0:g}", item.InputDate)) %></td>
<td><%= Html.Encode(String.Format("{0:g}", item.PaymentDueDate)) %></td>
<td><%= Html.Encode(item.InvoiceStatusId) %></td>
<td><%= Html.Encode(item.AuthoriserId) %></td>
</tr>
<% } %>
</table>
J'ai quelques JQuery:
$(document).ready(function() {
$("#InvoiceDropDown").change(function() {
$("#SearchResults").load("/Invoice/InvoiceSearchResults/");
});
});
J'ai supprimé une partie du code que je sais, c'est de travailler à rendre la question plus facile à lire.
Quand je clique sur mon DropDownList il appelle le JQuery, va à mon contrôleur et semble fonctionner la classe partielle, mais il ne rend pas quoi que ce soit.
J'ai essayé evilDonald de réponse et la même chose se produit alors peut-être quelque chose de stupide que j'ai fait quelque part?
De l'aide ou des conseils généraux d'ici bien apprécié.
désolé de mise en forme a disparu sur ce post :). Besoin de passer en mode hors connexion et reposter plus tard>
Regardez la réponse du serveur dans un violon ou Firebug Net du panneau. Est-il droit?
C'est un xmlHHTPRequest et n'a pas l'air OK - dois-je utiliser JSON ou quelque chose ici que ce n'est pas de l'html?
Le HTML semble OK aussi.
Vous ne devriez pas avoir besoin d'utiliser JSON pour ce faire.
Regardez la réponse du serveur dans un violon ou Firebug Net du panneau. Est-il droit?
C'est un xmlHHTPRequest et n'a pas l'air OK - dois-je utiliser JSON ou quelque chose ici que ce n'est pas de l'html?
Le HTML semble OK aussi.
Vous ne devriez pas avoir besoin d'utiliser JSON pour ce faire.
OriginalL'auteur Davy | 2009-10-07
Vous devez vous connecter pour publier un commentaire.
J'ai une solution pour vous:
Plutôt que d'utiliser
Essayez d'utiliser un $.ajax() de demander au contrôleur de gestion, puis mettre la réponse dans le code html. J'ai ce travail avec succès et je vais essayer de paraphraser la réponse ci-dessous:
Méthode de contrôleur
Garder le même
Appel Ajax
OnSuccess méthode js
Merci - la même chose se passe. Ai-je raté quelque chose de fondamental?
Ces deux (charge et ajax/succès/html) faire la même chose.
OriginalL'auteur Evildonald
:
sélecteur de questions - ne pouvaient pas le voir pour le regarder.
Grâce (EvilDonald - j'ai voté jusqu'votre réponse)
OriginalL'auteur Davy
Hmm... si le code ci-dessus devrait fonctionner (le $.ajax). J'ai été en utilisant une troisième approche pour rendre mes partiels. $.requête get.
Voici un exemple de
Alors peut-être vous obtiendrez troisième fois de la chance.
Ouais, j'ai vu après, j'avais déjà posté cette.
OriginalL'auteur Cyril Gupta