MVC3:只有控制器和参数的url(无动作)

时间:2012-02-09 09:36:37

标签: asp.net-mvc-3 asp.net-mvc-routing html.actionlink

我尝试使用细分www.example.com/Store*/Segment1/Segment2/Segment3*创建一个Html.ActionLink。细分是可选的。

我定义了以下路线:

routes.MapRoute("Store",
"{controller}/{Segment1}/{Segment2}/{Segment3}",  
new
{
controller = "Store",
action = "Show",
segment1 = UrlParameter.Optional,
segment2 = UrlParameter.Optional,
segment3 = UrlParameter.Optional
}
);

不应在网址中看到该行动。我似乎无法创建一个有效的链接。

在View i中生成链接如下:

<ul>
@foreach (KeyValuePair<string, string> item in ViewBag.LinkList){<li>@Html.ActionLink(item.Key, "Show", "Store", new { item.Value })</li>}
</ul>

当我在地址栏中输入网址时,一切顺利(Action可以将段读取为参数),但我无法正确获取Html.ActionLink。 任何人都可以举例说明这条路线的ActionLink工作原理吗?谢谢!

1 个答案:

答案 0 :(得分:0)

您为segment2两次定义了默认值,忘记了segment3因为您没有在ActionLink调用中定义段变量而导致整个事情中断的事件。