2011-06-28 93 views
0

当我部署我的mvc应用程序时,我无法在页面(视图)之间移动时使路径正常工作。web部署url路径mvc

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

因此,我所有的链接都遗漏了ITSMngr部分。例如,如果我有这样的一个链接:

<a href="/DataBaseMng/[email protected]" > 

其中DataBaseMng是控制器的名称和编辑的操作,它工作在我的开发环境很好,因为它最终将其映射到localhost/DataBaseMng /编辑ID = 2或其他东西。而部署时,它会尝试映射到相同的路径,但不会工作,因为它会错过ITSMngr部分。即它应该映射到本地主机/ ITSMngr/DataBaseMng /编辑?id = 2

有没有一种方法来设置,默认情况下,因此它总是会放在ITSMngr我?我试过在Global.asax.cs中更改地图路线,但它不起作用 - 并不是我100%确信我正确地做到了。

删除我的联系开始时/将工作一次,但是当你回来导航,它的内部路径是所有镜头,它可能LO

回答

0

在你应该使用内置功能的MVC应用程序生成URLS而不是硬编码它们。这应该照顾它都为你,并利用你的global.ascx定义

相反的路线的:

<a href="/DataBaseMng/[email protected]" > 

用途:

<a href="@Url.Action("Edit", "DataBaseMng", new { id = signData.SignDataId })" > 

如果要引用东西使用Url而不是Action辅助方法(不是真的推荐)然后使用:

@Url.Content("~/DataBaseMng/Edit?id=" + signData.SignDataId.ToString()) 

不是e〜哪个asp.net将映射到你安装了应用程序的任何地方

+0

谢谢。我没有提到我尝试使用你建议的〜。不过,我也更喜欢@ Url.Action,所以我可能会尝试实现它。感谢您的输入。 – Jason

+0

如果您使用〜(对css,脚本等有用),它必须位于Url.Content函数