Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# web部署url路径mvc_C#_Asp.net Mvc_Razor - Fatal编程技术网

C# web部署url路径mvc

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是控制器的名称并编辑操作,那么它在我的开发环境中可以正常工作,因为它最终

当我部署mvc应用程序时,在页面(视图)之间移动时,我很难让路径正常工作

基本上,在我的开发环境中,我的登录页是localhost:1910/而当我部署它时,我的登录页是localhost/ITSMngr

因此,我所有的链接都缺少ITSMngr部分。例如,如果我有以下链接:

<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())