我想要两条路线,例如:
和
http://localhost:1227/Category/
尾随斜线是唯一的区别。
在第一种情况下,我想在其他情况下显示关于类别的产品的信息。 "产品"和"类别"是某些产品或类别的名称
是否可以实施?
我的方法:
路线:
routes.MapRoute("category route", "{name2}", new { controller = "test", action = "GoToView2" }, new { name2 = ".*/?" });
routes.MapRoute("product route", "{name}", new { controller = "test", action = "GoToView1"});
控制器:
public class TestController : Controller
{
//
// GET: /Test/
public ActionResult Index()
{
return View();
}
public ActionResult GoToView1(string name)
{
// call to db to get some information about product
return View((object) name);
}
public ActionResult GoToView2(string name2)
{
// call to db to get some information about category
return View((object)name2);
}
}
索引视图:
...
<br/>
<a href="@Url.Action("GoToView1", new { name = "Prouct"} )">Show proudct</a>
<br/>
<a href="@Url.Action("GoToView2", new { name2 = "Category" + "/" } )">Show category</a>
...
但我只看到&#34; GoToView2&#34;被称为两个链接。
任何想法如何解决?
谢谢,
答案 0 :(得分:0)
为什么要这样做?在你的情况下你必须完全不同的控制器,即Product
和Category
和两个不同的动作,即使我们可以实现相同的URL来调用基于斜杠的不同动作,它将是一个代码气味(糟糕的设计),在你的情况下,你可以简单地调用TestController/GoToView1
和TestController/GoToView2
,如果不是这样,请告诉我们你要解决的问题,也许会有更好的方法。