1

我正在为 mvc 使用 Telerik 网格。我正在使用ajax绑定,以下是代码

 colums.Bound(o => o.SomeNumber)
.Groupable(false)
.ClientTemplate(Html.ActionLink("<#=SomeNumber#>", "ActionResult", "ControllerName", new { docid = ViewContext.RouteData.Values["docid"], id = "<#=RequisitionID#>" }).ToString())
.Title("Some No.")
.Width(100);

我有一条路线定义为

routes.MapRoute(
              "strict",
              "{controller}.mvc/{docid}/{action}/{id}",
              new {docid = "",action = "Index", id = ""},
              new { docid = @"\d+"}

            );

我希望网址像

<a href='ControllerName.mvc/docid/ActionResult/id'>SomeNumer</a>

构造的网址就像

<a id="32" href="/ControllerName.mvc/docid/ActionResult?Length=3" docid="160">SomeNumber</a>

我无法理解为什么它没有根据定义的路线构建,如果重要的话,我已经在默认路线上方定义了路线。

请帮我找出我哪里出错了

4

1 回答 1

1

您似乎使用了错误的 ActionLink 重载,并且路由值被解释为 HTML 属性。

试试这个(注意null作为最后一个参数)

Html.ActionLink(
    "<#=SomeNumber#>", //Link text
    "ActionResult", // Action name
    "ControllerName", //Controller name
    new { docid = "...", id = "..." }, //route values
    null //html attributes
)
于 2012-05-08T06:02:20.290 回答