2012-04-07 47 views
1

大家都知道,在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> 

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

回答

0

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

1

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

ASP.NET MVC中没有与页面请求/链接直接相连的页面。我想你应该理解MVC的一些基本概念。

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

记住ASP.NET MVC适用于一些约定。因此,例如,如果我们有一个名为“用户”控制器和一个操作方法显示这样

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

} 

yourdomainname/User/Show用户的浏览器,它会执行UserController中的显示操作方法 并返回字符串“Hello世界”。所以我们会在浏览器中看到“Hello World”。

如果我们想要返回一个View,该怎么办?我们用这样的方法替换Show方法

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

正如我以前告诉过你的,现在我们需要遵循约定。这意味着,我们必须在名称为Show.cshtml的Views->User->Folder中创建一个视图文件。如果此文件存在,MVC将返回该文件,否则它将在您的视图文件夹中查找某个共享文件夹。

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

enter image description here

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

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

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

这将出来把具有文字显示用户信息的链接并将指向Show控制器中User控制器的动作方法。因此,调用上述方法的输出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

+0

我想你不明白我的问题。我需要找出用户去过哪个链接。我知道通过链接他可以看到不同的观点,我知道如何向他展示他们。但是,我需要一种方法,将他点击红色的标签着色。如何找出他点击的标签? – 2012-04-07 15:41:31

+0

@Scrcee。您可以在母版页中使用parial视图来显示菜单,并且当您得到一个操作方法调用时,设置一些变量并将其传递给您的视图。从这个角度来看,你称之为局部视图。 – Shyju 2012-04-07 15:48:03

+0

@Srcee:查看我更新后的答案中的链接 – Shyju 2012-04-07 15:51:29