Div не будет обновляться с Ajax.ActionLink - PullRequest
0 голосов
/ 30 июня 2011

Я пытаюсь использовать Ajax.ActionLink для обновления списка элементов на моей странице.Я могу заставить базовые обновления Ajax работать на тестовой странице без проблем, но в этом конкретном случае я не могу заставить его работать.

Мой контроллер индекса и View довольно просты (см. Ниже).Представление «Индекс» отображает действие «Список», в котором перечислены мои элементы, а мои AjaxLinks.AjaxLinks вызывают действие «UpdateStatus», которое изменяет статус элемента.После того, как это произойдет, в списке больше не будет отображаться этот элемент, поэтому я возвращаю действие List.

Однако, хотя весь код выполняется правильно, без ошибок, страница не обновляется и не обновляется.Кто-нибудь может увидеть мою проблему?

    Public Function Index(Optional ByVal status As String = "Pending") As ActionResult

        ViewBag.Status = status
        Return View()

    End Function

    Public Function List(Optional ByVal status As String = "Pending") As ActionResult

       'Code to populate the model with the filtered list is here'

        Return View(plvm)
    End Function

    Public Function UpdateStatus(ByVal id As Integer, ByVal status As String, ByVal actionStatus As String)
        'Code to update the status is here'

        db.SaveChanges()

        Return List(status)
    End Function

Index.vbhtml:

    @Code
        ViewData("Title") = "Proposals"
        Layout = "~/Views/Shared/_Layout.vbhtml"
    End Code

    @* Some additional render code is here *@

    <div id="dashboardDetails">   
        @Code        
            Html.RenderAction("List", "Proposals", New With {.status = ViewBag.Status})
        End Code
    </div>

List.vbhtml:

@ModelType CharityMVC.ProposalListViewModel

@Code    
    Layout = ""
End Code
@* Some addtional render code is here (table tags, etc...)  *@
<tbody>
        @For Each item As CharityMVC.Program In Model.Programs
            @:<tr id="prop @item.Id">
                @:<td>@item.Proposal.Organization.Name</td>
                @:<td>@item.Name</td>
                @:<td><div class="buttons">     
                        @Ajax.ActionLink("ajax link", "UpdateStatus", New With {.id = item.Id, .actionStatus = "Tabled", .status = ViewContext.RouteData.Values("status")}, New AjaxOptions With {.UpdateTargetId = "dashboardDetails"})                                        
                @:</div></td>
            @:</tr>

        Next
    </tbody>

</table>

1 Ответ

0 голосов
/ 30 июня 2011

Моя лучшая догадка / ответ на данный момент:

Кажется, это как-то связано с тем, как я "вкладываю" возврат (возвращая функцию списка).

Если я дублирую вызов метода List () внутри моего UpdateStatus и использую следующую строку:

Return View("List",plvm)

Работает, вроде.

Иногда он не возвращает никаких данных, он просто удаляет весь список и оставляет его там, и мне нужно перезагрузить всю страницу. Это ошибка в реализации ajax?

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