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?像…=即使您已登录,也显示正常的产品页面。(或类似的内容)在登录时显示产品页面的编辑列表。