假设我有一个名为 ProductController 的 Controller 类。
我将使用三星作为假设的产品类别。
我的页面上有一个 Html.ActionLink,如下所示
~/Product/Samsung?t=Sony
现在假设我没有名为 Samsung 的 ActionResult 方法。
但是假设我有更多像上面这样的链接
~/Product/Toshiba?t=LG
~/Product/Sony?t=Dynex
别介意 t=?部分。
有没有一种方法可以让所有这些 ActionLink 在我的产品 Controller 中调用相同的 ActionResult 方法?
public ActionResult TelevisionCategory()
{
}
类似于某种 URL 路由,以便任何特定格式的 URL 都会命中 TelevisionCategory 方法?
最佳答案
听起来您只需要一个自定义路由,该路由将标识符作为第二个 URL 段而不是操作名称。
类似以下内容就足够了(您需要将其添加到路由配置中的默认路由之上):
routes.MapRoute(
"Products",
"Product/{category}",
new { controller = "Product", action = "TelevisionCategory" }
);
然后,您的操作方法应如下所示:
public ActionResult TelevisionCategory(string category)
参见here了解有关创建自定义路线的更多信息。
如果可以选择使用 MVC5,您还可以使用 attribute routing ,这更加直观和简洁。
关于asp.net-mvc-4 - 如何使用 asp.net mvc 路由来调用不同的 ActionResult 方法并显示与实际情况不同的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27626391/