3 Stimmen

MVC Jquery Ajax Aktualisierung Ihrer partiellen Ansicht

Ich habe eine MVC 3-Anwendung, die einen Webdienst aufruft, den sie verbraucht, um Sharepoints API aufzurufen. Der Aufruf dauert etwa 6 Sekunden unabhängig von Ihren Ergebnissen, so habe ich beschlossen, einen asynchronen Aufruf mit JQuery hinzufügen, um den Benutzer mit einer Warteanzeige bereitzustellen. Ich habe es fast fertig, aber ich bin nicht in der Lage, die Ansicht mit den zurückgegebenen Daten zu aktualisieren. Ich habe es auf die Ansicht eingegrenzt, da, wenn ich auf die teilweise Ansicht, die die Daten hat, habe ich einen Haltepunkt in der ForEach-Schleife und es gibt Daten in dort und es ist, was ich erwarte, aber wenn ich auf die Ansicht selbst im Browser zu erhalten, ist die Tabelle nicht aufgefüllt. Hier ist mein AJAX-Aufruf, der gestartet wird, wenn eine Eingabe-Schaltfläche angeklickt wird, die großartig auslöst:

$(function () {
            $("#ajax-indicator").hide();
        });

        function getData() {
            $("#ajax-indicator").show();

            $.ajax({
                type: "POST",
                url: "/Home/MakeCall",
                // the URL of the controller action method 
                data: null,
                // optional data          
                success: function (result) {
                    // do something with result  
                    $("#ajax-indicator").toggle();
                },
                error: function (req, status, error) {
                    // do something with error     
                }
            });

        }

Hier ist innerhalb der gleichen Ansicht, ein Indikator div, die ausgeblendet wird, die Schaltfläche und schließlich die Render teilweise.

 <div id="ajax-indicator">
        <img alt="AJAX Indicator" src="<%= Url.Content("../../images/ajax-loader.gif") %>" />
    </div>
    <div id='button'>
        <% using (Html.BeginForm())
           { %>
               <input type="submit" name="submit" value="Get Data" onclick="getData();" />
           <% } 
        %>
    </div>

    <% Html.RenderPartial("MakeCall", ViewData["viewModel"]); %>

Die Teilseite sieht wie folgt aus:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<AsyncCallTest.Models.SharepointModel>" %>
<table border="1">
<tr>
<td>Folder Name</td>
<td>Link</td>
</tr>

<tr>

<% if (Model != null)
   {
       foreach (var item in Model.FolderList)
       {
       %>
    <td> FolderName: <%: item.FolderName%></td>
       <%
       }
   }

     %>
     </tr>
     </table>

Wenn ich auf die item.FolderName Ich habe Daten gibt, aber wir erhalten nada. ich fühle mich wie ich etwas dumm fehlt. Irgendwelche Ideen?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X