如何在ASP.Net MVC中进行JavaScript重定向?

时间:2008-12-06 19:26:41

标签: javascript asp.net-mvc

以下代码将生成指向我想要访问的页面的链接。

<%= Html.ActionLink(image.Title, image.Id.ToString(), "Image") %>

以下代码将导致在页面上呈现正确的URL。

<%= Url.Action("Index", "Image", new { id = image.Id })%>

但是当我尝试在javascript中使用它时失败了。 (有关页面继承的一些奇怪错误)

<div onclick="window.location = '<%= Url.Action("Index", "Image", new { id = image.Id })%>'">
    ...
</div>

以上代码是否有效?生成上面尝试的javascript的正确方法是什么?

更新我得到的错误是

  

Views \ Home \ Index.aspx.cs(9):错误   ASPNET:确保上课   在此代码文件中定义的匹配   '继承'属性,它   扩展正确的基类(例如   Page或UserControl)。

看起来它表明一个更大的问题。

已修复感谢您的帮助,代码中包含一个runat="server"的div。当我删除它时运行正常。这可能是因为没有runat="server"的形式,但我预计会有不同的错误。

由于这个问题似乎没有意义,我应该将其删除吗?

3 个答案:

答案 0 :(得分:2)

这实际上应该有效。 ASP.NET MVC将替换所有&lt;%= ...%&gt;或者类似的标签,它不能识别它是html定义还是javascript。您的视图输出是什么?来自Javascript或ASP.NET的“奇怪错误”是什么?

编辑:关于您的更新:确保您的Index.aspx具有“Codebehind”属性(这是在第一行的Page-tag中),指向Index.aspx.cs和属性“Inherits”包含代码隐藏中的Page / User-Control类的类名。

答案 1 :(得分:1)

请查看this以获取错误消息的可能解决方案。 Codebehind与Codefile。

答案 2 :(得分:0)

看起来你有一个带有Image方法的HomeController正确吗?那应该是

<%= Url.Action("Image", "Home", new { id = image.Id })%>