0

我正在尝试添加一个允许用户添加具有特定外键的数据库条目的网络表单。

我正在创建这样的链接

<%= Html.ActionLink("Edit", "EditSub", new { id = id }) %>

生成的 URL 是http://localhost:3015/TumourGroup/CreateSub/2(其中 2 是我之前传递给 actionlink 的 id)。问题是,如何从 URL 中检索 id 的值?我正在使用它来获取“主”表,以便创建一个新表条目,该条目具有指向“主”表的外键。

4

2 回答 2

0

让你的控制器函数 CreateSub 接受 int id

public ActionResult CreateSub (int id)

如果您想使用此 id 转到表单,然后使用不同的数据集发布,您需要两个函数,区别于

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult CreateSub (int id)

get 用于导航到您的输入表单,当表单发布时调用该帖子。

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult CreateSub (TumourGroupSubcategory tumourSubgroupToCreate)

以下是对评论中的澄清的回应:

好吧,如果你放弃强类型视图,你可以这样做

ViewData["id"] = id;
ViewData["subGroupToCreate"] = ...

或者,您可以使用JavascriptJquery在客户端以第二种形式执行此操作

于 2010-03-04T21:06:50.713 回答
0

假设这TumourGroup是一个控制器的名称,并且你有一个看起来像这样的路由:

routes.MapRoute(
    "Default",
    "{controller}, {action}, {id}",
    new { controller="Home", action="Index", id="" }
)

然后在您的TumourGroup控制器中,您只需要一个如下所示的控制器方法:

public ActionResult CreateSub (int id)
{
    // blah
}  

参数 id 将包含来自 Url 的 id。

编辑:在提交表单时包含 id:

public ActionResult CreateSub (TumourGroupSubcategory tumourSubgroupToCreate)
{
    // blah
}  
  1. 将 id 作为属性添加到您的TumorGroupSubcategory类中。

  2. 在您提交的表单视图中,包含一个与您的类中的 id 名称相同的隐藏字段TumorGroupSubcategory,并使用您的 id 字段填充它。

当您的用户提交表单时,Model Binder 将拾取该字段,并tumourSubgroupToCreate自动将其放入 id 属性中。

于 2010-03-04T21:11:28.317 回答