在剃刀中创建动态视图

时间:2012-12-13 17:11:12

标签: asp.net-mvc razor

我通过此代码获得了一个webgrid

@grid.GetHtml(
                        tableStyle: "webgrid",
                        columns: grid.Columns(
                        grid.Column(header: "Link", style: "labelcolumn", format: (item) => Html.ActionLink("Edit Item", "EditQueue", new { id = item.QueueID})),
                        grid.Column("Description", "Description"),
                        grid.Column("QueueDate", "QueueDate"),
                        grid.Column("Note", "Note"),
                        grid.Column("Status", "Status"),
                        grid.Column("LastUpdated", "LastUpdated")
                            )
                    )

我创建了一个ID为1的测试用例。然后单击第一列中的链接。我收到404错误,因为我没有在 / Home / EditQueue / 1

创建一个页面

但是我显然不想为每个号码创建一个页面。创建一个只显示我传入其中的ID的页面的最佳做法是什么?

2 个答案:

答案 0 :(得分:1)

在HomeController中创建一个接受id参数的动作方法

public ActionResult EditQueue(int id)
{
    //Get the details of queue using id and return a view.
    return View();
}

您可能希望显示要编辑的数据。所以使用id获取数据并返回。

public ActionResult EditQueue(int id)
{
    //Get the details of queue using id and return a view.
    Queue queue=repositary.GetQueueFromID(id);
    return View(queue);
}

假设repositary.GetQueueFromID方法将返回Queue类对象,并且您的视图(Edit.cshtml)的类型强烈。

答案 1 :(得分:0)

让你的方法使用你在控制器中传递的参数..