C# web部署url路径mvc
当我部署mvc应用程序时,在页面(视图)之间移动时,我很难让路径正常工作 基本上,在我的开发环境中,我的登录页是localhost:1910/而当我部署它时,我的登录页是localhost/ITSMngr 因此,我所有的链接都缺少ITSMngr部分。例如,如果我有以下链接:C# web部署url路径mvc,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,当我部署mvc应用程序时,在页面(视图)之间移动时,我很难让路径正常工作 基本上,在我的开发环境中,我的登录页是localhost:1910/而当我部署它时,我的登录页是localhost/ITSMngr 因此,我所有的链接都缺少ITSMngr部分。例如,如果我有以下链接: <a href="/DataBaseMng/Edit?id=@signData.SignDataId" > 如果DataBaseMng是控制器的名称并编辑操作,那么它在我的开发环境中可以正常工作,因为它最终
<a href="/DataBaseMng/Edit?id=@signData.SignDataId" >
如果DataBaseMng是控制器的名称并编辑操作,那么它在我的开发环境中可以正常工作,因为它最终会将其映射到localhost/DataBaseMng/Edit?id=2或其他位置。然而,在部署时,它将尝试映射到同一路径,但不会工作,因为它缺少ITSMngr部分。ie应该映射到localhost/ITSMngr/DataBaseMng/Edit?id=2
有没有办法在默认情况下在某个地方设置它,以便它总是为我放入它的MNGR?我曾尝试在Global.asax.cs中更改地图路线,但没有效果——并不是说我100%确信我做得对
删除“我的链接”开头的/将只起一次作用,但当您再次导航时,它的内部路径都被截取,并且它可能会丢失。在MVC应用程序中,您应该使用内置函数生成URL,而不是硬编码它们。这将为您解决所有问题,并利用global.ascx中定义的路由 而不是:
<a href="/DataBaseMng/Edit?id=@signData.SignDataId" >
请注意~哪个asp.net将映射到您安装应用程序的任何位置谢谢。我没有提到我试过使用你建议的~。不过,我也更喜欢@Url.Action,所以我可能会尝试实现它。感谢您的输入。如果您使用(对css、脚本等有用),则它必须位于Url.Content函数中
<a href="@Url.Action("Edit", "DataBaseMng", new { id = signData.SignDataId })" >
@Url.Content("~/DataBaseMng/Edit?id=" + signData.SignDataId.ToString())