Question

J'ai une vue d'index que je veux mettre à jour automatiquement les types d'utilisateur dans un ID client. Je suis quelque chose de similaire au travail (seulement il a été mise à jour juste une étiquette) - mais cela ne fonctionnera pas

.

Qu'est-ce qui se passe est la partie est tout simplement qu'elle a rendu (non à la place du UpdateTargetID). Ainsi, les données est rendu sur une nouvelle page. Voici mon code:

Contrôleur:

public ActionResult ClientList(string queryText)
    {
        var clients = CR.GetClientLike(queryText);
        return PartialView("ClientIndex", clients);
    }

Vue partielle:

<table>
<thead>
    <tr>
        <td>Client ID</td>
        <td>Phone1</td>
        <td>Phone2</td>
        <td>Phone3</td>
        <td>Phone4</td>
    </tr>
</thead>
<tbody>
    <% if (Model != null)
       {
           foreach (Client c in Model)
           { %>
        <tr>
            <td><%= Html.Encode(c.ClientID)%></td>
            <td><%= Html.Encode(c.WorkPhone)%></td>
            <td><%= Html.Encode(c.WorkPhone1)%></td>
            <td><%= Html.Encode(c.WorkPhone2)%></td>
            <td><%= Html.Encode(c.WorkPhone3)%></td>

        </tr>
    <% }
       } %>
</tbody>

Vue principale:

Insérez le code foiré, donc c'est juste copier / coller:

             $ (Function () {             $ ( "# QUERYTEXT"). Keyup (function () {                 $ ( '# SForm') soumettre ().             });         });     

                 
  <div id="status" class="status" name="status">
    <%--<% Html.RenderPartial("ClientIndex", ViewData["clients"]); %> Should this be here???? --%>

  </div>
Était-ce utile?

La solution

Au lieu d'afficher un formulaire sur la page en permanence pourquoi ne pas faire les coulisses jQuery.get appeler pour obtenir les résultats de la recherche pour le texte fourni. Je pense que ce serait plus rapide et plus propre. En soumettant le formulaire comme je pense que vous (à en juger de ma lecture de votre code) que vous causez la page pour rafraîchir essentiellement (et non ré-écrire la div).

$('#sForm').submit()

Autres conseils

J'ai eu le même problème.

À mon avis partielle, j'ai eu cette

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>

mais il aurait dû être cette

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IQueryable<Client>>" %>

un moyen facile de tester si votre appel ajax fonctionne est de retourner une chaîne au lieu d'un ActionResult

public string ClientList(string queryText)<
{
    return("ok, the ajax call must have worked because I see this string.");
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top