Asp.net mvc 在控制器ASP.NET MVC中获取视图名称
我正在使用asp.NETMVC。我有4个页面显示事件列表(不同类型的事件),每个页面上的“详细信息”链接指向“EventDescription.aspx”视图 “EventDescription.aspx”有一个名为“返回事件”的链接,该链接必须将用户带到相应的页面 如果“详细信息”请求来自page1,“返回事件”链接需要指向page1.aspx。与page2.aspx、page3.aspx、page4.aspx相同 我的计划是在控制器操作“EventDescription”中捕获视图名称(page1.aspx),并在显示“EventDescription.aspx”之前存储在ViewData中,并使用“返回事件”链接的ViewData值 如何从操作中的请求来源获取视图的名称Asp.net mvc 在控制器ASP.NET MVC中获取视图名称,asp.net-mvc,Asp.net Mvc,我正在使用asp.NETMVC。我有4个页面显示事件列表(不同类型的事件),每个页面上的“详细信息”链接指向“EventDescription.aspx”视图 “EventDescription.aspx”有一个名为“返回事件”的链接,该链接必须将用户带到相应的页面 如果“详细信息”请求来自page1,“返回事件”链接需要指向page1.aspx。与page2.aspx、page3.aspx、page4.aspx相同 我的计划是在控制器操作“EventDescription”中捕获视图名称(pa
提前感谢。在呈现页面时,还需要呈现一个链接,当单击“返回事件”时,该链接将指向正确的页面。这最好在控制器方法中设置,您可以随时访问所有必要的信息 一种简单的方法是将返回链接信息放入ViewData变量
(下面是未测试的伪代码)。在控制器方法中:
ViewData["ReturnPath"] = "/Content/Page/1";
在你看来:
<% =Html.ActionLink("Back To Events", ViewData["ReturnPath"]) %>
…如果你不介意那根神奇的绳子的话。这将为您提供调用操作。如果您只想获取您来自的Url,您可以在操作中执行此操作
ViewData["ReturnPath"] = this.Request.UrlReferrer.AbsolutePath;
这将为您提供您所在页面的Url。如果从第1页开始,则转到EventDescription。在EventDescription操作中,ReturnPath ViewData的Url为Page1。反之亦然。将返回路径放在TempData(而不是ViewData)中,它可以从调用页面传递到详细信息页面。另请参见我建议您使用TempData而不是ViewData。例如,您可以有这样的设置
public ActionResult Details(int id)
{
var event = repository.GetByID(id);
if (event != null)
{
TempData["ReturnPath"] = Request.UrlReferrer.ToString();
return View(event);
}
else { //....... ; }
}
在你看来,你可以有这样一个定期的ActionLink
<% =Html.ActionLink("Back To Events", TempData["ReturnPath"]) %>
<% =Html.ActionLink("Back To Events", "GoBack") %>
在你看来,一个正常的动作链接
<% =Html.ActionLink("Back To Events", TempData["ReturnPath"]) %>
<% =Html.ActionLink("Back To Events", "GoBack") %>
这样我就必须在4个动作方法中(针对4个页面)放置。我认为最好在接收显示eventDescription请求的Action方法中的一个位置设置。我使用它来生成链接,因此仅使用视图名称就足够了,因为我所有的Action方法名称都反映了视图名称。