1

我正在努力完成我认为很简单的事情。我只是无法围绕它。

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

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

添加链接将简单地指向具有 DropDownList 的视图。然后,用户将选择选项之一,例如地址,以将地址添加到从组织列表中选择的组织。用户选择地址后,他们点击提交按钮。然后它转到 OrganizationAddress Create View 并自动填写 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 中的 Add 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 的新手——慢慢地,慢慢地学习我的方式!

非常感谢!

4

1 回答 1

1

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

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

在您的视图中,您可以指定表单将发布到的操作并包含参数,或者只需将这些属性(即组织、OrgPages)添加到视图模型,然后让 MVC 为您完成所有绑定。

阅读此内容了解详情

于 2012-11-20T02:47:09.473 回答