2013-08-20 63 views
1

我在视图的底部有'取消'和'下一个'。 '下一步'将详细信息发回给控制器。但我想'取消',不是作为一个按钮,而是像纯文本一样返回到上一页。如何浏览锚点?

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

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

Iv试图将#URL添加到href标记。但是这会增加URL到现有的,而不是新的URL

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

尝试''@T("Cancel") codingbiz

回答

2

随着HTML辅助

我认为你只是想用一个ActionLink ...

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

如果您需要任何然后使用此过载的参数:

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

请注意,该超载中的最终参数(我将其设置为null)可用于为生成的标记设置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(感谢codingbiz的提醒):

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

或使用动作的不同控制器:

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

感谢您详细的答复,但跟它ystem.web.mvc.htmlhelper 不包含界定及对.ActionLink – John

+0

@约翰:我还没有看到那之前。你使用的是什么版本的MVC? – musefan

+0

啊是的,谢谢你musefan ....删除'#'修复它。 @T是用于多种语言的 - 它的果园cms的一部分 – John

0

你能做到这一点,只需设置a标签的href是前一页。更妙的是,使用ActionLink

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

感谢您的答复,但它告诉我system.web.mvc。 htmlhelper 不包含.ActionLink的定义 – John