список не обновляется в mvc 3 view - PullRequest
0 голосов
/ 21 ноября 2011

У меня есть представление asp.net, которое имеет два частичных представления.Один для редактирования информации и другой для отображения списка внесенных изменений.Когда я нажимаю кнопку обновления, список не обновляется.Я использовал форму ajax.begin.Как я могу это сделать?

Главный вид выглядит следующим образом:

   <div class="accountdetails1">
    @Html.Action("UpdateAccountDetails", new { dispute = dispute })
    </div>

    <div>
    list of changes
    @Html.Action("GetAccountAudit")

    </div>

updateAccountDetails is like this in start:

@using (Ajax.BeginForm("UpdateAccountDetails", new AjaxOptions
{
    LoadingElementId = "loading",
    LoadingElementDuration = 2000,
    OnSuccess = "OnSuccess",
    OnBegin = "OnBegin",
}))
{

and functions are like this:

<script type="text/javascript">
    function OnSuccess() {
        var div = $('#dvMessage');
        div.html('');
        div.append('Account Information has been updated.');
    }

    function OnBegin() {
        var div = $('#dvMessage');
        div.html('');
    }
</script>

, чтобы показать успешное или неудачное обновление. Нужно ли обновлять список изменений в методе успеха?Пожалуйста, предложите

Ответы [ 2 ]

0 голосов
/ 22 ноября 2011

@ Ajax-методы работают следующим образом:

@Ajax.ActionLink - запрашивает HTML из указанного действия через AJAX и помещает результат в элемент HTML с идентификатором, равным значению UpdateTargetId, указанному в AjaxOptions.

@Ajax.BeginForm - получает все входные данные, выбирает и другие элементы формы внутри, используя (Ajax.BeginForm ()) {..} и отправляет его указанному действию (используя AJAX), затем помещает ответ в элемент HTML с указанным идентификатором в свойстве AjaxOptions.UpdateTargetId.

Так что вам нужно что-то вроде

<div id="myContainer" >
@using(Ajax.BeginForm("yourActionToProcessEdits", new AjaxOptions { UpdateTargetId = "myContainer" }))
{
.. Form for edit information
@Html.EditorFor(m => m.EditMe)
...

<input type="submit" value="Update" />

.. Display changes here
@Html.Raw(Model.MyChanges)

}
0 голосов
/ 21 ноября 2011

Вам необходимо запросить действие GetAccountAudit, чтобы вернуть список.Beginform запрашивает только действие UpdateAccountDetails.

Вы можете выполнить ajax-запрос jquery в функции onSuccess, чтобы запросить действие GetAccountAudit и обновить html.

Можно ли объединить два действия, чтобысписок будет возвращен в представлении UpdateAccountDetails?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...