そのデータをうまく渡すドロップダウンリストを作成しました。ただし、フォームを編集する場合、GET操作の古い値がフォームに入力されません。私はMVCを初めて使用するので、簡潔な例があれば素晴らしいでしょう。更新-私は何が起こっているのかを知っており、解決するのに助けが必要だと思います。ddlにはドロップダウンデータのみが含まれているため、編集ビューのモデルにドロップダウンデータのみを渡します。フォームのデータは私のコードの以下の変数モデルにありますが、ビューでddlとモデルを渡すにはどうすればよいですか?
コントローラーの私のコードはここにあります
public ActionResult Edit(int id)
{
var ddl = new Users();
ddl.DropDowns = userRepository.Getddl("Departments").Select(c => new SelectListItem
{
Value = c.DropdownID.ToString(),
Text = c.DropdownText
});
var model = userRepository.GetUserId(id);
return View(ddl);
}
[HttpPost]
public ActionResult Edit(Models.Users users)
{
userRepository.UpdateUser(users);
return RedirectToAction("Index");
}
見る
@model Models.Users
@{
ViewBag.Title = "Edit";
}
<h2>Edit</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)
<div id="stylized" class="myform">
<fieldset>
<legend>User Account</legend>
<div class="editor-label">
@Html.LabelFor(model => model.UserFullName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.UserFullName)
@Html.ValidationMessageFor(model => model.UserFullName)
</div>
<br/>
<div class="editor-label">
@Html.LabelFor(model => model.UserName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.UserName)
@Html.ValidationMessageFor(model => model.UserName)
</div>
<br/>
<div class="editor-label">
@Html.LabelFor(model => model.ProfileName)
</div>
<div class="editor-field">
@Html.DropDownListFor(x=> x.DeptID,new SelectList(Model.DropDowns,"Value","Text"),"Select")
</div>