如何浏览锚点?

时间:2013-08-20 15:36:47

标签: c# html asp.net-mvc razor anchor

我在视图底部'取消'和'下一步'。 'Next'将详细信息发回给控制器。但我希望“取消”,不是作为按钮,而是作为纯文本返回上一页。

<li class="align left"><a href="#">@T("Cancel")</a></li>
<li class="align right"><button type="submit">@T("Next")</button></li>

我可以从视图中做到吗?或者我是否必须将其更改为按钮并回发,然后使用帖子返回来从控制器导航?

我尝试将#URL添加到href标签。但是这会将URL添加到现有URL而不是新URL

<li class="align left"><a href="#http://URL/">@T("Cancel")</a></li>

2 个答案:

答案 0 :(得分:2)

使用Html助手

我想你只想使用ActionLink ...

@Html.ActionLink("text for link", "ActionName", "ControllerName")

如果您需要Action的任何参数,请改为使用此重载:

@Html.ActionLink("text for link", "ActionName", "ControllerName", new { @p1 = 1, @p2 = 2 }, null)

请注意,该重载中的最后一个参数(我设置为null)可用于为生成的<a>标记设置html属性。例如:

@Html.ActionLink("text for link", "ActionName", "ControllerName", new { @p1 = 1, @p2 = 2 }, new { @class = "MyClass" })

使用简单的Html

您尝试使用普通HTML也应该有效,前提是您从#值的开头删除了href

<a href="http://URL/">@T("Cancel")</a>

(不确定你的T()功能是什么,但没关系)

或者,您可以根据操作名称动态生成正确的URL,而不是指定硬编码的网址(感谢encodebiz提醒):

<a href="@(Url.Action("ActionName"))">@T("Cancel")</a>

或者对不同的控制器使用操作:

<a href="@(Url.Action("ActionName", "ControllerName"))">@T("Cancel")</a>

答案 1 :(得分:0)

您可以这样做,只需将href标记的a设置为上一页。更好的是,使用ActionLink

<li class="align left">
    @Html.ActionLink(T("Cancel"), "PreviousAction")
</li>