为什么无法找到资源?

时间:2015-04-01 15:13:35

标签: c# asp.net razor url-routing

我有一个带有以下视图目录的asp.net应用程序。

-Account
-Shared
  -Layout
-Home
  -index
  -about
-upload
  -uploadindex
  -uploadview
  -Uploaddelete

在布局中我有同行动作链接:

     <li class="navbar-links">
@Html.ActionLink("View Uploads", "UploadIndex", "Upload", new { @class = "navbar-links" })
</li>

如果我在de home / index页面,它将转到home / uploadIndex。但是当我输入de url http://localhost:12345/upload/uploadindex时,所有要上传的actionlink都可以使用。

如何使其他目录与其他控制器一起使用actionlinks。

1 个答案:

答案 0 :(得分:0)

MVC中的链接(我认为您正在使用MVC)被路由到调用视图的控制器。默认情况下,/upload/uploadindex上的uploadindex方法会处理UploadController的链接。

但是,@Html.ActionLink("View Uploads", "UploadIndex", "Upload", new { @class = "navbar-links" })并没有按照您的想法行事。这解析为https://msdn.microsoft.com/en-us/library/dd492124%28v=vs.118%29.aspx,参数Upload被理解为参数Object routeParamters。这创建了一个指向&#34;当前&#34;控制器(在您的情况下为Home),路由参数由&#34;上传&#34; (转换为查询参数length,其值为6),以获取指向/Home/UploadIndex?length=6的链接

您需要https://msdn.microsoft.com/en-us/library/dd504972%28v=vs.118%29.aspx

将被称为

@Html.ActionLink("View Uploads", "UploadIndex", "Upload", new {}, new { @class = "navbar-links" })

此处第三个参数是您希望将请求路由到的控制器。