ASP.NET MVC - 具有相同名称的多个视图?

时间:2010-08-23 08:13:23

标签: asp.net-mvc

这个问题主要与我之前的问题有关。我的产品网站的编辑视图列出了附带编辑/删除链接的产品..但我该怎么办:

/ products / edit =显示包含编辑/删除链接的列表。

/ products / edit / {productId} =显示特定产品的编辑模型(文本框等)。

1 个答案:

答案 0 :(得分:2)

您可以随时执行此操作:

public ActionResult Edit(int? productId)
{
    if (productId != null)
    {
        return View("ViewWithTextBoxes.aspx");
    }
    return View("ViewWithEditDeleteLinks.aspx");
}

这就是说,显示编辑和删除链接的情况似乎不是编辑,所以我建议你使用不同的动作名称。这对我来说似乎更加RESTful:

/products/index
/products/edit/{productId}

在这种情况下,您对每种情况都有不同的操作和视图:

public ActionResult Index()
{
    var products = _repository.GetProducts();
    return View(products);
}

public ActionResult Edit(int productId)
{
    var product = _repository.GetProduct(productId);
    return View(product);
}