Nis*_*dru 0 asp.net-mvc asp.net-mvc-3
嗨,我正在尝试创建一个产品控制器的链接,但我似乎做错了.这是我的代码:
@Html.ActionLink(subcategory, "Products")
Run Code Online (Sandbox Code Playgroud)
当我点击此链接时,我希望发送到这样的内容:
http://localhost:2100/Products
Run Code Online (Sandbox Code Playgroud)
相反,我被发送到这个页面:
http://localhost:2100/Home/Products
Run Code Online (Sandbox Code Playgroud)
如果我打开产品页面cotontroller并单击链接我会发送给她:
http://localhost:2100/Products/Products
Run Code Online (Sandbox Code Playgroud)
那么我怎么能解决这个问题,因为链接在_Layout.cshtml视图中呢?
因为您正在设置路线的行动部分.用这个:
@Html.ActionLink(subcategory, "Index", "Products")
Run Code Online (Sandbox Code Playgroud)
编辑
查看您正在使用的方法的签名:
Html.ActionLink(string linkText, string actionName, string controllerName)
Run Code Online (Sandbox Code Playgroud)
你正在使用的超载是这个:
Html.ActionLink(string linkText, string actionName)
Run Code Online (Sandbox Code Playgroud)
这意味着在这个重载中,你不要设置路由器的控制器部分.因此,当我们不设置路线的一部分时,它将从当前路线自动读取,这意味着:当我们处于其控制器所在的路线时Home,您的链路的控制器将是Home,您将获得此路线:
@Html.ActionLink(subcategory, "Products", "Home")
Run Code Online (Sandbox Code Playgroud)
当你在一个带控制器的路线上时Products,你会得到这条路线:
@Html.ActionLink(subcategory, "Products", "Products")
Run Code Online (Sandbox Code Playgroud)
等等.
| 归档时间: |
|
| 查看次数: |
100 次 |
| 最近记录: |