Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ASP.NET MVC Url。操作路由错误_Asp.net Mvc_Routing - Fatal编程技术网

Asp.net mvc ASP.NET MVC Url。操作路由错误

Asp.net mvc ASP.NET MVC Url。操作路由错误,asp.net-mvc,routing,Asp.net Mvc,Routing,我已经用了一段时间了,但我似乎不明白,在这个简单的代码中哪里会出错: <a href="<%= Url.Action("Page", new { page=(Model.PageIndex + 1) }) %>" >a</a> 当然这个方法 public ActionResult Index(int? page) 我得到的不是预期的地址,而是 使用时 <%= Html.RouteLink("a", "Paging", new { page=(Mode

我已经用了一段时间了,但我似乎不明白,在这个简单的代码中哪里会出错:

<a href="<%= Url.Action("Page", new { page=(Model.PageIndex + 1) }) %>" >a</a>
当然这个方法

public ActionResult Index(int? page)
我得到的不是预期的地址,而是

使用时

<%= Html.RouteLink("a", "Paging", new { page=(Model.PageIndex+1) }) %>

它起作用了。。请问,我的错在哪里?我想要图像链接,所以如果有办法将其插入到Html.RouteLink中,我也会通知您这些信息

提前谢谢。

我不知道为什么,但是

<%= Url.Action("Index", new { page=(Model.PageIndex + 1) }) %>


工作,并显示和指向/Home/Page/1。如果有人能给我解释一下,我会很感激的。

这里有一大堆内容要介绍,让你完全了解发生了什么。对不起,这会有点长

routes.MapRoute(
    "Paging",
    "Home/Page/{page}",
    new { controller = "Home", action = "Index" }
);
首先,这是你想走的路线。在路由路径中不包括操作路由参数“{action}”。此路由可能执行的唯一操作是指定为默认操作值“Index”的值


第二,在链接中,您正在设置页面的操作。您期望的路由不接受操作作为参数,并且它知道的唯一操作是索引。当Url.Action在路由表中查找可能的路由时,它将跳过所需的路由,因为该路由不接受Page的操作。不过,默认路由是有效的,因为您隐式地提供了一个控制器Home,显式地提供了一个操作Page,允许框架为id提供一个默认值string.Empty,并将任何其他参数作为查询参数Page附加

当您将Url.Action更改为“Index”时,Url.Action方法检查了routes表,并找到了为Home controller指定了索引操作的路由,该路由的参数为page,一切都很好


希望这对您有所帮助,不要太混乱。

您使用的是什么操作-Home.Paging还是Home.Index?我使用的是Home.Index。分页只是路由表条目的名称。
routes.MapRoute(
    "Paging",
    "Home/Page/{page}",
    new { controller = "Home", action = "Index" }
);
<a href="<%= Url.Action("Page", new { page=(Model.PageIndex + 1) }) %>" >a</a>