我正在努力完成我认为简单的事情。我无法绕过它。
我有一个组织列表,它只是组织ID和名称。我想要做的是在每个组织旁边都有一个“添加”链接,就像编辑一样(就像删除和编辑按钮一样)。
它将获取OrganizationID并将其传递给其他控制器中的一个Create Views,并自动填写OrganizationID的字段。
添加链接只会指向具有DropDownList的视图。然后,用户将选择其中一个选项,例如“地址”,以便向从“组织”列表中选择的组织添加地址。用户选择地址后,他们点击提交按钮。然后它进入OrganizationAddress创建视图并自动填写OrganizationID字段。
我真的希望我解释得很好。
这是我的OrganizationController中的Add ActionResult
public ActionResult Add(int id)
{
using (var db = new VAGTCEntities())
{
ViewBag.OrgPages = ddp.PageList();
return View(db.Organizations.Find(id));
}
}
抓住组织。
以下是我的添加视图中的表单:
<fieldset>
<legend>Organization</legend>
@Html.HiddenFor(model => model.OrganizationID)
<div class="editor-label">
@Html.Label("Add:")
</div>
<div>
@Html.DropDownList("OrgPages")
</div>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
这是我的OrganizationController中的添加POST ActionResult
[HttpPost]
public ActionResult Add(int id, Organization organization, int OrgPages)
{
try{
ViewBag.OrgID = id;
if (OrgPages == 2)
return RedirectToAction("Create", "OrgAddress");
else if (OrgPages == 3)
return RedirectToAction("Create", "OrgIE");
else if (OrgPages == 4)
return RedirectToAction("Create", "OrgMembership");
else if (OrgPages == 5)
return RedirectToAction("Create", "OrgBusinessType");
else if (OrgPages == 6)
return RedirectToAction("Create", "OrgIndustryType");
else if (OrgPages == 7)
return RedirectToAction("Create", "OrgPhone");
else if (OrgPages == 8)
return RedirectToAction("Create", "OrgEmail");
else if (OrgPages == 9)
return RedirectToAction("Create", "OrgWebsite");
else if (OrgPages == 9)
return RedirectToAction("Create", "OrgNote");
else
return RedirectToAction("Index");
}
catch (Exception)
{
ModelState.AddModelError("Error", "This item exists in the database already.");
ViewBag.OrgPages = ddp.PageList();
}
return View(organization);
}
从这里我无法弄明白。我试图传递的任何东西都是空的。 我还是MVC的新手 - 慢慢地,慢慢地学习我的方式!
非常感谢!
答案 0 :(得分:1)
您是否有自定义路线来考虑您传递的以下参数?
public ActionResult Add(int id, Organization organization, int OrgPages)
在您的视图中,您可以指定表单将发布到哪个操作并包含参数,或者只是将这些属性(即Organization,OrgPages)添加到视图模型中,然后让MVC为您执行所有绑定。 / p>