以下代码将生成指向我想要访问的页面的链接。
<%= 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"
的形式,但我预计会有不同的错误。
由于这个问题似乎没有意义,我应该将其删除吗?
答案 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 })%>