2

我正在编写我的第一个 MVC3 应用程序,但我被困在某个时刻。这是我不清楚的,

在 Taskscontroller 生成的编辑操作如下所示:

// GET: /Tasks/Edit/5

public ActionResult Edit(int id)
{
Task task = db.Tasks.Find(id);
    return View(task);
}

对应的视图代码如下:

@Html.ActionLink("Edit", "Edit", new { id = item.TaskId })

这里 id 正确传递给 Edit 操作。

这就是我修改 create (Get) 方法以从视图接收 id 值的方式,代码片段如下,

public ActionResult Create(int i)
{
    ViewData["I"] = i;
    return View(i);
}

对应的视图代码如下,

@Html.ActionLink("c", "Create", "Tasks", new { id = someId }, new { @class = somecssclass})

任何帮助表示赞赏。为什么在create action id 值是null?

提前致谢。

4

1 回答 1

0

尝试

public ActionResult Create(int id)
{
    ViewData["I"] = i;
    return View(i);
}

默认模型绑定器找不到用于绑定的匹配接收参数id或其错字?此外,如果您想接收字符串,您还应该发布字符串

@Html.ActionLink("c", "Create", "Tasks", new { id = someId.ToString() }, new { @class = somecssclass})

如果你收到FormCollection你会发现id那里像

 public ActionResult Create(string i, FormCollection col)
    {
        var id = col["id"];
        ViewData["I"] = i;
        return View(i);
    }
于 2012-05-16T16:15:03.003 回答