0

这是真的?我正在visual studio中开发一个mvc3应用程序,我希望我用作标题的图像成为返回主页的链接,但由于我只是在本地运行它,所以我使用这一行作为代码:

<a href="localhost:60060">
<img src="../../Content/images/LionLabs.png" alt="Lion logo">
</a>

这虽然行不​​通!我做错了什么,还是只是不能这样使用本地主机?

我也只是尝试使用 javascript 方法作为 href 来刷新页面,但这也不起作用:(

4

5 回答 5

7

由于默认情况下链接从域开始,因此没有理由指定它。你可以只使用/.

<a href="/">
    <img src="../../Content/images/LionLabs.png" alt="Lion logo">
</a>
于 2012-07-11T18:46:13.180 回答
2

HTML 链接在 localhost 上工作得很好:

<a href="http://localhost:60060/">
    <img src="../../Content/images/LionLabs.png" alt="Lion logo">
</a>

这里的问题是,只是localhost:60060尝试使用相对路径,所以浏览器实际上正在寻找http://localhost:60060/localhost:60060/,当然,这是一个无效的路径。

此外,在应用程序页面之间链接时不应使用绝对路径,因为当您需要更改域名(例如,将应用程序部署到 Web)时,这将成为一场噩梦。

要使您的代码对 MVC 更友好,请执行以下操作:

<a href="@Url.Action("Index", "Home")">
    <img src="@Url.Content("~/Content/images/LionLabs.png")" alt="Lion logo">
</a>

这里发生的是 ASP.NET MVCUrl帮助程序在向用户提供页面时提供正确的路径信息,因此它会自动适应服务器中的任何更改。它还允许您使用Routes最佳效果,因为您可以轻松更改链接的路由(即 URL),但仍使用相同的控制器和视图。

于 2012-07-11T18:58:09.767 回答
1

的链接<a href="">与 的链接没有区别<img src="">

您不应该使用绝对路径,因为当您部署项目时,站点名称不会是 localhost:60060。

用于主页

<a href="/"></a>
于 2012-07-11T18:52:00.603 回答
0

您已href用作localhost:60060. 它应该是一个页面(可能是default.html或类似的东西)。

于 2012-07-11T18:47:32.813 回答
0

改变这个:

<a href="localhost:60060">
    <img src="../../Content/images/LionLabs.png" alt="Lion logo">
</a>

对此:

<a href="@Url.Action("Index", "Home")">
    <img src="@Url.Content("~/Content/images/LionLabs.png")" alt="Lion logo">
</a>

为什么?

最好使用它@Url.Action,因为它将使用您在 Global.asax 中设置的任何自定义路由。如果您必须更改 url 路由,您能想象修改复杂站点上的每个链接引用吗?:)

使用@Url.Content,因为这将正确解析到应用程序的根目录,从而消除使用../or ../../or的不确定性../../..。更干净了!

于 2012-07-11T18:55:56.233 回答