我有一个带有以下视图目录的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。
答案 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" })
此处第三个参数是您希望将请求路由到的控制器。