2011-08-14 8 views
0

一括更新しようとしています。私はviewmodelパターンを使いたい。私はthis article とプログラムを作成します。プログラムの表示データベースの値とHTMLはOKです。しかし、送信後、コントローラは値を取得できませんでした。すべての価値は「何もない」私が迷っているところを私に指摘してください。おかげviewModelを使用したASP.NET MVCバルクデータの更新

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 

ビュー

<%@ 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> 

コントローラ-get

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

デフォルトのモデルバインダーは、それらを設定することができるように、あなたのモデルクラスで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 
+0

おかげでダーリン!今それはうまく動作します。私はこれについてほぼ一日過ごした。もう一度ありがとう! – nora

関連する問題