为什么找不到资源?

Why can the resource cannot be found?

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

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

在 Layout 中我有 fellowing 动作链接:

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

如果我在 home/index 页面,它将转到 home/uploadIndex。但是当我输入 de url http://localhost:12345/upload/uploadindex 时,所有要上传的操作链接都有效。

如何使操作链接从其他目录与其他控制器一起工作。

MVC 中的 link(我认为您使用的是 MVC)被路由到调用视图的控制器。 link 到 /upload/uploadindex 将默认由 UploadController 上的方法 uploadindex 处理。

但是,@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。这会创建一个 link 到 "current" 控制器(在你的例子中 Home),路由参数由 "Upload" 提供(它被转换为查询参数 length 6) 对于 link 到 /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" })

这里的第三个参数是你希望将请求路由到的控制器。