我的网址如下
http://ixorra.com/products/27/13
我想在视图中找到27个值
我的网址路由配置如:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "IxorraExports.Controllers" }
);
知道如何在视图中获得27的值。
答案 0 :(得分:1)
你可以通过拆分网址来实现:
var url = $(location).attr('href');
var parts = url.split("/");
alert(parts[0]);
你可以通过正确的索引来分享。 我希望它可以提供帮助!
答案 1 :(得分:1)
根据您对上述问题的评论:
在网址"产品"是Action方法名称,27是我的第一个动作方法参数,13是动作方法的第二个参数 控制器名称是家庭和"家庭"是路由配置中的默认控制器。
首先,您的网址有误。你忘记了控制器。它应该是:
http://ixorra.com/home/products/27/13
一旦您纠正了这一点,您只需要在路线配置中添加另一个可选参数即可。这只会改变这些界限:
url: "{controller}/{action}/{id}/{foo}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional, foo = UrlParameter.Optional },
当然,您希望使用比foo
更有意义的名称。但我们不知道这些价值观是什么意思,所以现在只是一个占位符。
您的控制器操作可以接受这些网址参数:
public ActionResult Products(int id, int foo)
{
// your action method
}
(这是更有意义的名称变得非常有意义的地方。无论什么常见的通用名称对于第二个参数都有意义,您将在路由定义和方法定义中使用它们。)
此时你有价值,所以你可以用它做任何你喜欢的事。将其添加到发送到视图的模型中,在ViewBag
中发送,等等。例如:
public ActionResult Products(int id, int foo)
{
ViewBag.foo = foo;
return View();
}
然后在您的视图中,您可以访问ViewBag
:
<span>The value is: @ViewBag.foo</span>