Как я могу обновить два элемента DOM, используя Ajax.beginform внутри моего веб-приложения asp.net mvc - PullRequest
2 голосов
/ 04 марта 2012

У меня есть следующая ссылка ajax.action: -

<div id ="link">
@Ajax.ActionLink("Add New Answer", "Create", "Answer",
        new { questionid = Model.QuestionID },
          new AjaxOptions
          {

              HttpMethod = "Get",
              UpdateTargetId = "link",
              InsertionMode = InsertionMode.InsertAfter,
              LoadingElementId = "progress"

                        })
                        </div>

, где вышеуказанная ссылка перезапустит следующее частичное представление _answer, содержащее ссылку Ajax.Action: -

 @using (Ajax.BeginForm("Create", "Answer", new AjaxOptions
{
    HttpMethod = "Post",
    InsertionMode = InsertionMode.InsertAfter,
    UpdateTargetId = "incrementanswer",
}))

 {
     <div id = "returnedquestion">
     @Html.ValidationSummary(true)

    <fieldset> 
        <legend>Answer here</legend> 
        <div class="editor-label"> 
            @Html.LabelFor(model => model.Description) 
        </div> 
        <div class="editor-field"> 
            @Html.EditorFor(model => model.Description) 
            @Html.ValidationMessageFor(model => model.Description) 
        </div> 
        <div class="editor-label"> 
            @Html.LabelFor(model => model.IsRight) 
        </div> 
        <div class="editor-field"> 
             @Html.DropDownList("IsRight", String.Empty) 
            @Html.ValidationMessageFor(model => model.IsRight) 
        </div>  
    </fieldset> 
     <input type= "hidden" name = "questionid" value = @ViewBag.questionid>
     <input type= "hidden" name = "assessmentid" value = @ViewBag.assessmentid>
     <input type="submit" value="Add answer" />
 </div>
 }
 </div>

В настоящее время после нажатия на кнопку отправки «UpdateTargetId =» incrementanswer »будет обновлено результат выполнения запроса, но проблема заключается в том, что мне также необходимо удалить текущий частичный вид _answer (в настоящее время вид, содержащий значения, которые явставленный будет по-прежнему отображается после нажатия на кнопку отправить ajax.beginform)

1 Ответ

3 голосов
/ 04 марта 2012

загрузка вашего частичного представления в оболочку div

<div id="partialWrapper">
 @Html.partial("yourpartial")
</div>

объявление обработчика событий OnSuccess

@using (Ajax.BeginForm("Create", "Answer", new AjaxOptions
{
    HttpMethod = "Post",
    InsertionMode = InsertionMode.InsertAfter,
    UpdateTargetId = "incrementanswer",
    OnSuccess="removePartial"
}))

определение removePartial

<script>
 function removePartial(){
   $("#partialWrapper").remove();
  }
</script>
...