Html.ActionLink不是在生产环境中工作(Html.ActionLink not work

2019-11-03 07:41发布

我目前工作的一个MVC4项目,正被部署到IIS6托管环境。


我使用的Html.ActionLink()来生成我的页面上的链接。

例如:

@Html.ActionLink("Home Link", "Index", "Admin")

当我在本地运行的应用程序(即打http://localhost:yyy ),被罚款生成的链接:

<a href="/Admin/Index">Home Link</a>

当我在生产环境中运行但它:

<a href="">Home Link</a>

正如你所看到的,该链接不具有href它产生的。


我想这可能是与路由的问题,但是当我试图访问在浏览器的页面: admin/edit/45使用自定义的路由绑定,或一个: sf/24 ,这两个做工精细; 他们告诉我去我所希望的网页。


我敢出来的想法,不知道如何解决。

任何帮助将不胜感激。

谢谢,


我添加一个赏金这一点,希望这可以帮助得到答案。 我怀疑这个问题可能帮助别人,因为我似乎并没有做什么太突破性的。


UPDATE 24/09/14

这是在VS2010 SP1开发,利用内置的Web服务器(卡西尼?)。

我然后发布(使用Visual Studio的内置选项)到服务器,这是运行IIS6。

该目录结构包含类似于:

App_Start
Assets
Classes
Content
Controllers
DomainModel
Scripts
Services
SharedAssets
ViewModels
Views

(即在没有任何有链接的名称一致)。

在此之上,捆绑似乎工作。 例如: @Scripts.Render("~/bundles/adminjs")

使用这个(VB)剃刀:

@Html.ActionLink("View", "Display", "Form", New With { .id = 72 }, Nothing)
<br />
@Html.RouteLink("View", "Default", new with { .controller = "Form", .action = "Display", .id = 72 })

我得到以下输出..

在VS10 /铬(本地):

<a href="/Form/Display/72">View</a>
<br>
<a href="/Form/Display/72">View</a>

在IIS6 /铬(服务器):

<a href="">View</a>
<br>
<a href="">View</a>

..adding更多的它不拾取路径之谜..

Answer 1:

你可能想看看这个SO ,看看是否遇到关于你的路由和默认路由的定义方式相同的问题。



Answer 2:

IIS 6不支持APP-池集成模式。 这里是一个指导你如何可以得到IIS请求路由到您的ASP.NET MVC应用程序。 更多的莅临指导。

这里是一个伟大的答案比较两种模式,经典和集成。



文章来源: Html.ActionLink not working in production environment