Ich mache einen AJAX-Aufruf (mit jQuery), um eine PartialView
abzurufen. Zusammen mit dem HTML möchte ich eine JSON-Darstellung des Objekts, das die Ansicht anzeigt, zurücksenden. Der beschissene Weg, den ich benutzt habe, ist die Einbettung von Eigenschaften als versteckte Eingaben in den HTML-Code, der schnell unhandlich wird und eng zu viel zusammenhält.Zurückgeben einer PartialView mit HTML und JavaScript
Ich könnte nur die JavaScript in einem <script>
Tag nach dem HTML senden, aber ich bin wirklich anal darüber, diese Dinge getrennt zu halten. Das würde so aussehen:
<%@ Control Language="C#" AutoEventWireup="true" Inherits="System.Web.Mvc.ViewUserControl<Person>" %>
<div class="person">
First Name: <%= Html.TextBox("FirstName", Model.FirstName) %>
Last Name: <%= Html.TextBox("LastName", Model.LastName) %>
</div>
<script type="text/javascript">
// JsonSerialized object goes here
</script>
Eine weitere Option I ist als einen zweiten AJAX-Aufruf zu einer Aktion zu machen, die JsonResult
zurückkehrt, aber das fühlt sich auch so schlechtes Design.
Mit was sind Sie am Ende gegangen? Ich habe das gleiche Problem jetzt. – Jon
@swilliams, könnten Sie den jQuery-Code veröffentlichen, der die Teilansicht abruft. Ich bin interessiert zu sehen, wie es gemacht wird. Danke – Picflight
@Picflight - das gleiche wie Sie eine normale Ansicht und die $ .post() oder $ .ajax() Funktionen. Der Trick besteht darin, nur eine Teilansicht in der Aktion zurückzugeben.Aus der Perspektive von jQuery, einer HTML-Antwort, ist das das Gleiche. Meine "echte" Lösung ist unten. – swilliams