我正在编写我的第一个MVC3应用程序而且我在某些方面受到了限制。这是我不清楚的,
在Taskscontroller中,生成的Edit操作如下所示:
// 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已正确传递给“编辑”操作。
这是我修改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?
提前致谢。
答案 0 :(得分: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);
}