コードは VB で、MVC 4 (おそらく 5) を使用しています。コードの 2 つの問題を見つけようとしていますが、現在のところ、現在の問題の原因となるものを見つけることができませんでした。まず、モデルが返されると、何もないように見えます (含まれているすべての要素は何もありません)。これは問題です。私はオンラインで調べましたが、解決策 (または問題が何であるかの提案) を見つけることができませんでした。第 2 に、ボタンの 1 つが押されると、すぐに正しい HttpPost メソッドに移動せず、代わりに (不規則な順序で) 循環します。これも気になるところです。
これがコントローラーです。モデルは、httpget としてマークされているインデックスによってビューに渡されています。
Imports System.Data.SqlClient
Imports System.Web.Mvc
Imports System.Web.Routing
Imports System.ComponentModel.DataAnnotations
Namespace Test
<HttpPost()> _
Function SelectUser(ByVal Model As Test.Models.AdminModel) As ActionResult
Return View("Index", Model)
End Function
<HttpPost()> _
Function AddEnv(ByVal Model As Test2.Models.AdminModel) As ActionResult
Return View("Index", Model)
End Function
<HttpPost()> _
Function RemoveEnv(ByVal Model As Test.Models.AdminModel) As ActionResult
Return View("Index", Model)
End Function
<HttpPost()> _
Function AddApp(ByVal Model As Test.Models.AdminModel) As ActionResult
Return View("Index", Model)
End Function
<HttpPost()> _
Function RemoveApp(ByVal Model As Test.Models.AdminModel) As ActionResult
Return View("Index", Model)
End Function
End Namespace
これがビューです。モデルは正しくバインドされているようです (私はインテリセンスを取得します)
@ModelType Test.Test.Models.AdminModel
@Code
ViewData("Title") = "Admin"
Layout = "~/Views/Shared/_Admin.vbhtml"
End Code
<table>
<tr>
@Using (Html.BeginForm("SelectUser", "Admin", method:=FormMethod.Post))
@<td>Username: </td>
@<td>@Html.TextBoxFor(Function(Model) Model.UserAccount.Username)</td>
@<td><a href="javascript:$('form').submit();" class='BUTTON' style="display: inline-block; height: 30px; width: 80px"><span>Select User</span></a></td>
@<td><input type ="submit" Class="BUTTON" style="display: inline-block; height: 30px; width: 80px" value ="Login"/></td>
End Using
</tr>
<tr>
@Using (Html.BeginForm("AddApp", "Admin", method:=FormMethod.Post))
@<td>Add App: </td>
@<td>@Html.TextBoxFor(Function(Model) Model.NewApp)</td>
@<td><a href="javascript:$('form').submit();" class='BUTTON' style="display: inline-block; height: 30px; width: 80px"><span>Add App</span></a></td>
@<td><input type ="submit" Class="BUTTON" style="display: inline-block; height: 30px; width: 80px" value ="Login"/></td>
End Using
</tr>
<tr>
@Using (Html.BeginForm("RemoveApp", "Admin", method:=FormMethod.Post))
@<td>Remove App:</td>
@<td>@Html.DropDownListFor(Function(Model) Model.AppList, Model.AppList)</td>
@<td><a href="javascript:$('form').submit();" class='BUTTON' style="display: inline-block; height: 30px; width: 80px"><span>Remove App</span></a></td>
@<td><input type ="submit" Class="BUTTON" style="display: inline-block; height: 30px; width: 80px" value ="Login"/></td>
End Using
</tr>
<tr>
@Using (Html.BeginForm("AddEnv", "Admin", method:=FormMethod.Post))
@<td>Add Env: </td>
@<td>@Html.TextBoxFor(Function(Model) Model.NewEnv)</td>
@<td><a href="javascript:$('form').submit();" class='BUTTON' style="display: inline-block; height: 30px; width: 80px"><span>Add Env</span></a></td>
@<td><input type ="submit" Class="BUTTON" style="display: inline-block; height: 30px; width: 80px" value ="Login"/></td>
End Using
</tr>
<tr>
@Using (Html.BeginForm("RemoveEnv", "Admin", method:=FormMethod.Post))
@<td>Remove Env:</td>
@<td>@Html.DropDownListFor(Function(Model) Model.EnvList, Model.EnvList)</td>
@<td><a href="javascript:$('form').submit();" class='BUTTON' style="display: inline-block; height: 30px; width: 80px"><span>Remove Env</span></a></td>
@<td><input type ="submit" Class="BUTTON" style="display: inline-block; height: 30px; width: 80px" value ="Login"/></td>
End Using
</tr>
</table>
最後に、モデル:
Imports System.ComponentModel.DataAnnotations
Namespace Test.Models
Public Class AdminModel
<Required(ErrorMessage:="User Name field is required"), Display(Name:="User Name")>
Public UserAccount As User2.User
Public AppList As SelectList
Public EnvList As SelectList
Public PermissionsTable As DataTable
Public NewEnv As String
Public NewApp As String
End Class
End Namespace