私は、ユーザーが 1 人以上の他のユーザーを追加できるようにする管理パネルに取り組んでいます。管理者がアプリケーションに追加する 1 つまたは複数のユーザー ID を入力できるテキスト領域があります。これは、雇用プロセス中に割り当てられたユーザーの ID に対応します。送信すると、アプリケーションはすべての従業員を含むデータベースから名前、電子メールなどを取得し、確認のために画面に表示します。CanWrite
画面には、やなどの権限を割り当てるためのチェックボックスもいくつか含まれていますIsAdmin
。
意見
using (Html.BeginForm())
{
<table>
<tr>
<th>
</th>
<th>
@Html.DisplayNameFor(model => model.User.First().ID)
</th>
<th>
@Html.DisplayNameFor(model => model.User.First().Name)
</th>
<th>
@Html.DisplayNameFor(model => model.User.First().Email)
</th>
<th>
@Html.DisplayNameFor(model => model.User.First().CanWrite)
</th>
<th>
@Html.DisplayNameFor(model => model.User.First().IsAdmin)
</th>
</tr>
@foreach (var item in Model.User)
{
<tr>
<td>
<input type="checkbox" name="id" value="@item.ID" checked=checked/>
</td>
<td>
@Html.DisplayFor(modelItem => item.ID)
</td>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Email)
</td>
<td>
@Html.CheckBoxFor(modelItem => item.CanWrite)
</td>
<td>
@Html.CheckBoxFor(modelItem => item.IsAdmin)
</td>
</tr>
}
</table>
<input type="submit" />
}
注: 名前付きのチェックボックスがある理由はID
、名前やその他の情報が取得された後にユーザーを追加しないようにするためです。たとえば、追加するつもりのないユーザーが誤って ID のリストに入ってしまった場合などです。
モデル
public class User
{
public int ID { set; get; }
public string Name { set; get; }
public bool IsAdmin { set; get; }
public bool CanWrite { set; get; }
public string Email{ set; get; }
}
コントローラ
[HttpPost]
public ActionResult Create(IEnumerable<User> model)
{
//With this code, model shows up as null
}
User model
1 人のユーザーの場合、コントローラー アクションのパラメーターとして使用できることがわかっています。このコードを調整して、複数のユーザーが一度に追加されるようにするにはどうすればよいですか? これは可能ですか?