Frage

Ich habe einen Index Ansicht, dass ich automatisch während der Benutzer tippt in einer Client-ID aktualisieren möchten. Ich habe etwas ähnlich zu arbeiten (nur wurde die Aktualisierung nur ein Etikett) - aber das wird nicht funktionieren

.

Was passiert ist, die teilweise nur durch sich selbst (nicht anstelle des UpdateTargetID) wiedergegeben wird. So werden die Daten auf einer neuen Seite gerendert. Hier ist mein Code:

Controller:

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

Teilansicht:

<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>

Hauptansicht:

Fügen Sie Code vermasselt, so ist dies nur kopiert / eingefügt:

             $ (Function () {             $ ( "# QUERY"). Keyup (function () {                 $ ( '# SForm') submit ().             });         });     

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

  </div>
War es hilfreich?

Lösung

Anstatt ein Formular auf der Seite ständig zu veröffentlichen, warum eine hinter den Kulissen nicht jQuery.get rufen Sie die Suchergebnisse für den zur Verfügung gestellten Text zu bekommen. Ich würde denken, dies wäre schneller und sauberer. Wenn Sie das Formular absenden, wie ich glaube, Sie sind (aus meiner Lektüre Ihrer Kodebeurteilungsschaltung) Sie die Seite (und nicht neu zu schreiben, um die div) im Wesentlichen zu aktualisieren verursachen.

$('#sForm').submit()

Andere Tipps

Ich hatte das gleiche Problem.

In meiner Teilansicht, hatte ich diese

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

, aber es sollte das gewesen sein

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

eine einfache Möglichkeit zu testen, ob Ihr Ajax-Aufruf arbeitet, ist eine Zeichenfolge anstelle einer Action zurückzukehren

public string ClientList(string queryText)<
{
    return("ok, the ajax call must have worked because I see this string.");
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top