我无法弄清楚为什么ActionLink在这个实例中没有正确生成url.
我有一个名为Activity的控制器和一个名为Show的视图.从那里我正在尝试创建一个指向ServiceCall控制器的链接,显示视图.从ServiceCall的任何视图中都可以正常工作:
<%= Html.ActionLink(Html.Encode(sc.CallNumber), "Show", new { callNumber = "100" })%>
Run Code Online (Sandbox Code Playgroud)
从"活动"视图中,这不起作用:
<%= Html.ActionLink(Html.Encode(sc.CallNumber), "Show", "ServiceCall", new { callNumber = "100" })%>
Run Code Online (Sandbox Code Playgroud)
它生成一个像http:// localhost/Activity/Show/12?Length = 11的链接
经过一番研究,我决定尝试这个:
<%= Html.ActionLink(Html.Encode(sc.CallNumber), "Show", new { controller = "ServiceCall" }, new { callNumber = "100" })%>
Run Code Online (Sandbox Code Playgroud)
这给了我一个http:// localhost/ServiceCall/Show的url,但没有给出callNumber.有任何想法吗?
这是我的路线:
routes.MapRoute(
"ShowCall",
"ServiceCall/Show/{callNumber}",
new {controller = "ServiceCall", action = "Show", callNumber = ""}
);
Run Code Online (Sandbox Code Playgroud)
我认为你没有调用正确的覆盖.你需要:
<%= Html.ActionLink(
sc.CallNumber,
"Show",
"ServiceCall",
new { callNumber = "100" },
null) %>
Run Code Online (Sandbox Code Playgroud)
注意额外的null.我最近有类似的问题.
编辑:另外,我相信你不需要Html.Encode.它已经被编码了.
| 归档时间: |
|
| 查看次数: |
314 次 |
| 最近记录: |