ASP.NET MVC-What';从视图中创建Url到控制器操作的最佳方式
本文关键字:控制器 Url 操作 方式 最佳 创建 MVC-What NET 视图 ASP | 更新日期: 2023-09-27 17:58:24
我需要找出从视图中创建控制器操作url的最佳方法。我遇到的问题是,当我将应用程序部署到具有和不具有虚拟应用程序根的不同机器时,url会略有变化。
因此,我希望能够动态地构造url,并且该方法需要知道应用程序是否在应用程序根目录中运行,或者它是否驻留在根目录中。
那么,我应该利用哪些助手/类来完成这项工作呢?
<%=ResolveUrl(string.Concat(Request.Url.Authority,Request.ApplicationPath) + "/Session/GetSessionFile/" + Model.SessionID + "/" + Model.FileName)%>
您应该使用Url.Action
。您作为参数之一传递操作。然后是其他人的一系列路线值。我猜那些路由值键是什么(id
和fileName
):
<%= Url.Action("GetSessionFile", new { id = Model.SessionId, fileName = Model.FileName })
您可以使用Url.Action()
助手:
<%=Url.Action("GetSessionFile", "Session") + '/' Model.SessionID + '/' + Model.FileName %>
更新:
我会试着猜测你的路由配置。如果包含以下语句:
routes.MapRoute("Session_Route", "{controller}/{action}/{sessionId}/{arg}");
你当然应该这样传递参数:
<%=Url.Action("GetSessionFile", "Session", new { sessionId = Model.SessionID, arg = Model.FileName}) %>