创建一个与'不同的'页面
本文关键字:页面 一个 创建 | 更新日期: 2023-09-27 17:54:59
我有两个不同的页面,用户可以点击" details "链接进入详细信息页面。
在详细页面上,我有一个"返回"按钮,它将用户引导到原始页面,当然是两个原始页面之一。
还有一个额外的问题:在一个返回链接中,我必须指定一个额外的匿名对象。
我现在的视图代码是:
@{
MvcHtmlString backLink = null;
if (Model.ReturnPage == MatchResultReturnPage.Search)
{
backLink = Html.ActionLink("GoBack", "Search", new {search = true});
}
else
{
backLink = Html.ActionLink("GoBack", "Dashboard");
}
}
在控制器中,我现在查看url.referrer
是否包含'dashboard',然后我将Model.ReturnPage
设置为'dashboard'。
有更干净的方法吗?
将ReturnLink
作为模型的属性并将其设置在控制器中,这将减轻您在视图中放置逻辑的需要。
当然有更干净的方法,但就您当前的代码而言,很容易理解您正在尝试做什么。
我会说保持原样,在它周围放一个#region包装器,当你不需要处理它的时候隐藏它:
#region get referrer page
MvcHtmlString backLink = null;
if (Model.ReturnPage == MatchResultReturnPage.Search)
{
backLink = Html.ActionLink("GoBack", "Search", new {search = true});
}
else
{
backLink = Html.ActionLink("GoBack", "Dashboard");
}
#region
我唯一建议的是在控制器中进行此检查,而不是在视图中,并简单地将检查结果放在模型属性或ViewBag中。
要访问控制器中的helper,请执行以下操作:
var URL = new UrlHelper(this.Request.RequestContext).Action("MyAction", "MyController", new { id = 123 });
你可能应该完全用JavaScript实现后退按钮。
使用历史对象
<a href=”javascript:history.back()”> [Back]</a>