mvcイントラネットにプロセスを作成するためのビューがあります。
そのビューでは、データを入力する必要があるテーブルがあります。
これが私の見解です
@model TestingTool.ViewModels.ProcessModel
@{
ViewBag.Title = "Create";
}
<h2>
Create</h2>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset>
<legend>Process</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Code)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Code)
@Html.ValidationMessageFor(model => model.Code)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Description)
</div>
<div class="editor-field">
@Html.TextAreaFor(model => model.Description)
@Html.ValidationMessageFor(model => model.Description)
</div>
<table>
<thead>
<tr>
<th>
Region
</th>
<th>
Owner
</th>
</tr>
</thead>
<tbody>
@if (Model != null)
{
foreach (var item in ViewBag.Regions)
{
<tr>
<td>
@Html.DisplayTextFor(i => item.Name)
</td>
<td>
@Html.DropDownListFor(i => item.User, new SelectList(item.User, "Id", "Name"))
</td>
</tr>
}
}
</tbody>
</table>
<p>
<input type="button" value="Create" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
そしてこれは私のコントローラーです
//
// GET: /Process/Create
public ActionResult Create()
{
Collection<RegionModel> region = new Collection<RegionModel>();
foreach (var regions in _db.Regions)
{
if (regions.Name != "Europe")
{
RegionModel iRegion = new RegionModel
{
Name = regions.Name,
Id = regions.Id,
User = new Collection<UserModel>()
};
foreach (User user in _db.Users)
{
UserModel iUser = new UserModel { Id = user.Id, Name = user.Name };
iRegion.User.Add(iUser);
}
region.Add(iRegion);
}
}
ViewBag.Regions = region;
return View();
}
ViewBagを繰り返すことは可能だと思いましたが、このエラーが発生します
An expression tree may not contain a dynamic operation - mvc
そして、私が疑問に思っていたもう1つのことは、モデルにデータを事前入力させることが可能かどうかということです。