Итак, у меня есть частичное представление «_Customer» с текстовым полем и кнопкой «Сохранить». В настоящее время код частичного просмотра у меня такой:
@model CompositeViews.Models.Customer
@using (Ajax.BeginForm("Edit", "Customer", new AjaxOptions { HttpMethod = "Post", InsertionMode = InsertionMode.Replace, UpdateTargetId = "customerDiv" }))
{
<div id="customerDiv">
@Html.ValidationSummary(true)
<fieldset>
<legend>Customer</legend>
@Html.HiddenFor(model => model.CustomerId)
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
<p><input type="submit" value="Save" /></p>
</fieldset>
</div>
}
представление живет с родительским представлением, называемым индексом (который также предоставляет модель, от которой зависит частичное представление):
@model CompositeViews.ViewModels.CompositeViewModel
<h2>Index</h2>
@Html.Partial("_Customer", Model.Customer)
Родительское представление называется Index.cshtml и передается простым действием контроллера. Когда я нажимаю кнопку «Сохранить» в частичном представлении, оно переходит к соответствующему действию на соответствующем контроллере, но я не слишком уверен, как вернуть обновленные данные модели НАЗАД в частичное представление.
Во всех примерах это форма, которая делает асинхронную публикацию, но UpdateTargetId нацелен на a, который затем заполняется некоторым типом обновленного контента. Это кажется довольно прямолинейным и простым.
Я борюсь с тем, как вернуть ту же форму с обновленной информацией о модели, используя существующее представление (_Customer). По сути, это BeginForm, который нацеливается на результат действия контроллера, а не на какой-то другой div, не являющийся частью формы.
Я бы хотел, чтобы НЕ приходилось вручную перестраивать весь HTML-код, который представление _Customer делает для меня через структуру MVC, и возвращать его для рендеринга. Я предполагаю, что я застрял с формой в частичном представлении, отправляющем данные в контроллер, а затем нуждающимся в способе, чтобы это же представление перерисовывалось при возврате из метода действия.
Любые идеи?