检查用户访问的链接是什么?

时间:2012-04-07 15:16:37

标签: javascript jquery asp.net-mvc

你们都知道MVC中的母版页有这个:

<nav>
     <ul id="menu">
         <li id="id1"><%: Html.ActionLink(...)%></li>
         <li id="id2"><%: Html.ActionLink(...)%></li>
         <li id="id3"><%: Html.ActionLink(...)%></li>
     </ul>
</nav>

如何检查用户点击了哪个标签?通过检查网址或其他东西? 所有这些链接都转到不同控制器中的方法。

2 个答案:

答案 0 :(得分:1)

该方法(操作)将(通常)返回一个视图,您将在浏览器中看到该输出(除非您在操作方法中指定其他内容)。

ASP.NET MVC中没有与页面请求/链接直接相关的页面。我认为您应该了解MVC如何工作的一些基本概念。

当我们请求页面时,请求由控制器中的操作方法处理。然后action方法将返回输出,并将显示在浏览器中。 action方法可以简单地返回“Hello World”字符串或具有一些复杂HTML标记的View。返回视图意味着返回View文件夹中可用文件的内容。

记住ASP.NET MVC适用于某些约定。所以例如,如果我们有一个名为“User”的Controller和一个像这样的动作方法

public class UserController
{
 public ActionResult Show()
 {
   return "Hello World";
 }

}

yourdomainname/User/Show的用户浏览器时,它将执行Show Action方法 UserController并返回字符串“Hello World”。所以我们将在浏览器中看到“Hello World”。

如果我们想要返回视图怎么办?我们替换像这样的Show方法

 public ActionResult Show()
 {
   return View();
 }

正如我之前所说,我们现在需要遵循惯例。这意味着,我们必须在Views->User->Folder中创建一个名为Show.cshtml的View文件。如果此文件存在,MVC将返回该文件,否则它将在您的视图文件夹中查找一些共享文件夹。

要添加视图,您可以右键单击您的操作方法,然后从上下文菜单中选择“添加视图”

enter image description here

唯一的好处是我们可以覆盖约定,这意味着,如果要返回不同的视图,可以在调用View方法时指定路径。

现在回到你的问题 Html.ActionLink是一个HTML帮助方法,它将输出一个锚标记

例如:Html.ActionLink("Show User Info","Show","User")

这将显示一个包含文本Show User Info的链接,并指向Show控制器中的User Action方法。因此调用上述方法的输出HTML标记将是

<a href="User/Show">Show User Info</a>

此方法存在不同的重载。

编辑:用于突出显示所点击的链接

如果您想知道通过着色点击哪个链接,请使用部分视图来显示菜单。当您获得动作调用方法时,在Viewmodel中设置一个Property值,该值指示单击了哪个链接,并在View中使用该视图模型调用局部视图。

http://weblogs.asp.net/scottgu/archive/2010/12/30/asp-net-mvc-3-layouts-and-sections-with-razor.aspx

答案 1 :(得分:0)

document.location.href就是我所需要的。