Массовое обновление данных ASP.NET MVC с помощью viewModel - PullRequest
0 голосов
/ 14 августа 2011

Я пытаюсь массовое обновление. Я хочу использовать шаблон модели представления. Я прочитал эту статью и создать программу. Программа показывает значение базы данных и HTML выглядит нормально. Но после отправки Контроллер не может получить значения. Каждое значение - «Ничто», пожалуйста, укажите мне, где я неправильно Спасибо

Public Class users

    Public id As String
    Public username As String

End Class

ViewModel

Public Class UserViewModel
    Public userlist As List(Of users)
End Class

View

<%@ Page Title="" Language="VB" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage(Of PartnerRotation.Repositories.UserViewModel)" %>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

<%  Html.BeginForm()%>
    <input type="submit" name="input" value="Save" />
   <table>
   <tr><th>ID</th><th>Name</th></tr>
    <% Dim i As Integer = 0 %>
    <% For Each item In Model.userlist%>
    <tr><td> <%: Model.userlist(i).id%>
             <%: Html.HiddenFor(Function(Model) Model.userlist(i).id)%>
    </td><td>
             <%: Html.TextBoxFor(Function(Model) Model.userlist(i).username)%>
    </td></tr>
 <% i = i + 1%>
 <% Next%>
  </table>
<%  Html.EndForm()%>

</asp:Content>

Контроллер -Получить

    Function Index() As ActionResult

        Dim viewmodel As New UserViewModel With {
        .userlist = (From u In _db.users Select New user With {
                        .id = u.id, _
                        .username = u.username}).ToList}

        Return View(viewmodel)

    End Function

Контроллер -Почта

    <HttpPost()> _
    Function index(ByVal userlist As IList(Of user)) As ActionResult

        For Each user In userlist

            Dim id = user.id
            Dim u = (From a In _db.PSC_MST _
                Where a.id = id).FirstOrDefault

            _db.ApplyCurrentValues(u.EntityKey.EntitySetName, user)
            _db.SaveChanges()

        Next
        Return View()

    End Function

1 Ответ

1 голос
/ 16 августа 2011

Вам нужно использовать properties вместо полей в классах модели, чтобы связыватель модели по умолчанию мог их установить:

Public Class users
    Public Property id As String
    Public Property username As String
End Class

Public Class UserViewModel
    Public Property Userlist As List(Of users)
End Class
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...