Ich denke, Ihre beste Option wird sein, eine Controller-Aktion zu erstellen, die eine Teilansicht zurückgibt, die Ihre Tabelle enthält. Die Teilansicht kann jede JavaScript-basierte Tabelle/Raster enthalten, die Sie möchten. Diese Lösung hat überhaupt keine Abhängigkeit von einer spezifischen Raster-/Tabellenimplementierung.
Zum Beispiel, sagen wir, Sie haben eine stark typisierte Teilansicht vom Typ ViewUserControl> mit dem Namen FooList.ascx
Dann würden Sie eine Aktion in Ihrem Controller definieren, die diese Teilansicht rendert:
// Für die Unterstützung der Seitenzahlung müssten Sie wahrscheinlich diese Aktion ändern, um einen Parameter zu akzeptieren,
// der verwendet werden könnte, um mitzuteilen, welche Datensätze abgerufen werden sollen.
// Dies erforderte auch die entsprechende Route. Dies geht jedoch über
// den Rahmen dieses Beispiels hinaus.
public PartialViewResult List()
{
// Holen Sie sich die Sammlung der Dinge, die Sie anzeigen möchten
var items = this.itemRepository.GetItems();
// geben Sie die Teilansicht zurück
return PartialView("FooList", items);
}
In Ihrer Ansicht, in der diese Teilansicht verwendet wird, möchten Sie etwas ähnliches wie das Folgende haben...
<%-- dies setzt voraus, dass eine Sammlung von "items" in Model.Items verfügbar ist --%>
<% Html.RenderPartial("FooList", Model.Items); %>
<%=
Ajax.ActionLink
(
"Klicken Sie hier, um die Tabelle über AJAX zu aktualisieren!",
"List",
new AjaxOptions()
{
HttpMethod = "GET",
LoadingElementId = "FooList"
}
)
%>
Alles, was wir hier tun, ist, den ASP.NET MVC AJAX Helper zu verwenden, um einen Link zu erstellen, der eine AJAX GET-Anforderung an die List-Aktion in Ihrem Controller sendet. Außerdem haben wir durch Festlegen der LoadingElementId-Eigenschaft im AjaxOptions-Objekt dem Helper mitgeteilt, dass wir den inneren Inhalt von
mit den Ergebnissen der AJAX-Anforderung ersetzen möchten.
Wenn ein Benutzer auf diesen Link klickt, wird eine AJAX-Anforderung dazu führen, dass Ihre List-Aktion aufgerufen wird. Ihre List-Aktion gibt einfach die gerenderten Inhalte der Teilansicht FooList.ascx zurück. Die vorhandenen Inhalte des
werden durch die Inhalte ersetzt, die aus der AJAX-Anforderung abgerufen wurden. Im obigen Beispiel wählt die Controller-Aktion immer dieselben Daten aus, was eigentlich nicht das ist, was Sie wollen. In einem echten Szenario müssten Sie die Controller-Aktion ändern, um die entsprechenden Daten für Ihre Teilansicht abzurufen. Ohne die Details Ihrer Implementierung zu kennen, könnte ich Ihnen keinen effektiven Weg vorschlagen, wie Sie das handhaben können.
Wenn Sie keinen Link verwenden möchten, schauen Sie sich einfach den von der Ajax.ActionLink-Hilfsmethode generierten HTML- und JavaScript-Code an und passen Sie ihn Ihren eigenen Bedürfnissen an. Zum Beispiel, erstellen Sie Ihre eigene benutzerdefinierte Hilfsmethode oder schreiben Sie einfach manuell den JavaScript-Code.
Zuletzt, vergessen Sie nicht, die MVC AJAX JavaScript-Quelldateien einzuschließen. Ich empfehle, sie in Ihrer Masterseite einzuschließen. Zum Beispiel: