我有一个父子情况,例如我的用户类和我的用户工作子类(实体框架脚手架类)。我使用控制器向导来搭建 CRUD 方法和视图。它构建了两个 Create 方法,Get 和 httpPost 方法。
在正常情况下,我希望将用户的 id 传递到 get 中,以便将其传递到 html.beginform() 部分中填充的模型中,然后将其传递到 post 中。
我不确定这样做的正确方法是什么?我已经修改了 Get 如下
public ActionResult Create(int id)
{
this.ViewData.Add("id", id);
return View();
}
和 Create.shtml 如下
@model UserWork
@{
ViewBag.Title = "Create";
int id = (int)ViewData["id"];
}
<h2>Create</h2>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"></script>
@using (Html.BeginForm(routeValues:new {user_id = @id})) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Userwork</legend>
<div class="editor-label">
@Html.LabelFor(model => model.user_id)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.user_id)
@Html.ValidationMessageFor(model => model.user_id)
</div>
......
(我将脚手架的 user_id 字段保留为可编辑,因此我可以测试在表单加载时看到它们预填充)表单加载的字段中没有我的 id 值,这是实现此目的的正确方法吗?
干杯蒂姆