Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ASP.NET MVC-具有相同名称的多个视图?_Asp.net Mvc - Fatal编程技术网

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

Asp.net mvc ASP.NET MVC-具有相同名称的多个视图?,asp.net-mvc,Asp.net Mvc,这个问题主要与我之前的问题有关。我的产品网站有一个编辑视图,可以列出附加了编辑/删除链接的产品。。但我该怎么做: /产品/编辑=显示带有编辑/删除链接的列表 /products/edit/{productId}=显示特定产品的编辑模型(文本框等)。您始终可以执行以下操作: public ActionResult Edit(int? productId) { if (productId != null) { return View("ViewWithTextBoxe

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

/产品/编辑=显示带有编辑/删除链接的列表


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

您始终可以执行以下操作:

public ActionResult Edit(int? productId)
{
    if (productId != null)
    {
        return View("ViewWithTextBoxes.aspx");
    }
    return View("ViewWithEditDeleteLinks.aspx");
}
尽管如此,显示编辑和删除链接的情况看起来不像是编辑,因此我建议您使用不同的操作名称。在我看来,这样更让人安心:

/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);
}

的确但是我不能这样做,因为/products/index=应该为客户显示没有删除/编辑链接的产品列表,/products/edit=应该为登录管理员显示带有删除/编辑链接的产品列表。我认为您的设计是错误的
/products/index
应该检查当前登录的用户是否是管理员,并分别显示链接,而不是普通用户的
/products/index
,管理员的
/products/edit
。可能是。。但是我很难看到我如何做/products/index,检查用户是否已登录,并且仍然将所有管理都保存在控制面板中。啊。。或者我可以照你说的做。。在索引控制器上检查身份验证,然后呈现IndexWithOutLogin或IndexWithLogin视图?Darin,很抱歉再次打扰您。。但是,当我在登录时只访问常规站点,但在管理面板中仍然呈现IndexWithLogin时,我如何才能在不登录的情况下查看IndexWithLogin?像…=即使您已登录,也显示正常的产品页面。(或类似的内容)在登录时显示产品页面的编辑列表。