2012-04-07 26 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