0

Итак, у меня есть частичный вид «_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) 

Родителя view называется Index.cshtml и питается простым действием контроллера. Когда я нажимаю кнопку «Сохранить» в частичном представлении, она переходит к соответствующему действию на соответствующем контроллере, но я не слишком уверен, как вернуть обновленные данные модели BACK в частичное представление.

Во всех примерах это форма, которая создает сообщение async, но UpdateTargetId нацеливается на то, что затем заполняется некоторым типом обновленного контента. Это кажется довольно простым и простым.

То, с чем я борюсь, - это вернуть ту же форму с обновленной информацией о модели, используя существующий вид (_Customer). В принципе, это BeginForm, который нацелен на результат с действием контроллера, а не на какой-либо другой div, который не является частью формы.

Мне не нужно будет перестраивать все HTML вручную, чтобы представление _Customer выполнялось для меня через структуру MVC и возвращало его для рендеринга. Я предполагаю, что я застрял в форме в частичном представлении, передавая данные контроллеру, а затем нуждаюсь в том, чтобы тот же вид снова возвращался к возврату из метода действия.

Любые идеи?

ответ

1

Надеюсь, я понял вас правильно, и вы хотите показать свое обновление на почте. В таком случае вы можете попробовать это:

<div id="customerDiv"> 
    @Html.RenderAction("Edit", "Customer", Model) 
</div> 

и поставить @using (Ajax.BeginForm()) в Edit результата.