2012-11-20 90 views
1

我正试图完成我认为很简单的任务。我无法围绕它思考。将控制器中的整数传递给视图mvc

我有一个组织列表,它只是OrganizationID和Name。我想要做的就是在每个组织旁边都有一个“添加”链接,就像编辑一样,就像删除和编辑按钮一样。

它会抓取OrganizationID并将其传递给其他控制器中的其中一个“创建视图”,并自动填写OrganizationID字段。

添加链接只会指向具有DropDownList的View。然后,用户将选择其中一个选项,例如地址,将地址添加到从组织列表中选择的组织。用户选择地址后,他们点击提交按钮。然后它将转到OrganizationAddress创建视图并自动填充OrganizationID字段。

我真的很希望我解释得很好。

这是我OrganizationController

public ActionResult Add(int id) 
{ 
    using (var db = new VAGTCEntities()) 
    { 
     ViewBag.OrgPages = ddp.PageList(); 
     return View(db.Organizations.Find(id)); 
    } 
} 

拿过组织添加的ActionResult。

这里是我添加视图形式:

<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

[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); 
} 

添加POST的ActionResult在这里,我无法弄清楚。我试图通过的任何结果都是空的。 我还是MVC的新手 - 慢慢地,慢慢地学习我的方式!

非常感谢!

回答

1

您是否有自定义路线来解释您传递的以下参数?

public ActionResult Add(int id, Organization organization, int OrgPages) 

在您看来,您可以指定表格将被张贴什么行动,包括参数或只是那些属性(即组织,OrgPages)添加到视图模型,然后让MVC做所有的结合为你。

Read this for details

+0

非常好!非常感谢! – cfisher

相关问题