2017-06-02 36 views
-1

我試圖做一個簡單的下拉列表上游戲說電腦。C# - 簡單的SubMenu

<div class="navbar-collapse collapse"> 
      <ul class="nav navbar-nav"> 
       <li>@Html.ActionLink("Home", "Index", "Home")</li> 
       <li>@Html.ActionLink("About", "About", "Home")</li> 
       <li>@Html.ActionLink("Contact", "Contact", "Home")</li>        
       <li class="dropdown"> 
        <a class="dropdown-toggle" role="button" aria-expanded="false" href="@Html.ActionLink("Gaming", "Gaming", "Gaming")" data-toggle="dropdown">Gaming <span class="caret"></span></a> 
        <ul class="dropdown-menu" role="menu"> 
         <li>@Html.ActionLink("PC", "Gaming","Gaming")</li>      
        </ul> 
       </li>               
      </ul> 
      @Html.Partial("_LoginPartial") 
     </div> 

程序崩潰:在 '/' 應用

http://localhost:9949/%3Ca%20href=

服務器錯誤。

有潛在危險的Request的值是由客戶端(<)檢測。

描述:在當前web請求的執行過程中發生了未處理的異常。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。

異常詳細信息:System.Web.HttpException:從客戶端(<)檢測到潛在危險的Request的值。

源錯誤:

在當前web請求的執行過程中生成未處理的異常。關於異常的來源和位置的信息可以使用下面的異常堆棧跟蹤來標識。

堆棧跟蹤:

[HttpException(0X80004005):從客戶端(<)中檢測到潛在危險的Request的值] System.Web.HttpRequest.ValidateInputIfRequiredByConfig()561 的System.Web .PipelineStepManager.ValidateHelper(HttpContext的背景下)+54

任何想法,爲什麼?

+0

鏈接渲染* as *是什麼? – Amy

+0

什麼?我只想點擊遊戲並在 – xDDD

+0

內部用PC打開一個子菜單我只想澄清這個問題。有時候我們會這樣做。你能迴應我的查詢嗎? Razor代碼呈現的HTML是什麼? – Amy

回答

1

你是不是想放@Html.ActionLink遊戲項目href屬性,使用@Url.Action代替。

@Html.ActionLink創建整個a標記,而您只需要在控制器中正確操作的URL,這就是@Url.Action的用途。

@Html.ActionLink("Name", "action", "controller")結果是<a href="/controller/action">Name</a>

@Url.Action("action", controller")結果就是URL字符串'/controller/action'

+0

它現在的作品,但我不明白爲什麼。 – xDDD

+0

什麼?兩個答案都解釋了原因我的回答闡述了爲什麼這是一個問題。你讀過我的回答了嗎?你有什麼不明白? – Amy

+0

'@ Html'助手主要用於生成部分視圖,例如'@ H​​tml.ActionLink'生成''標籤。 '@ Url.Action'只是爲你期望的動作生成一個url。我延長了我的回答 – tdragon

0

你的問題是這樣的一行:

<a class="dropdown-toggle" role="button" aria-expanded="false" href="@Html.ActionLink("Gaming", "Gaming", "Gaming")" data-toggle="dropdown">Gaming <span class="caret"></span></a> 

Html.ActionLink呈現爲<a>標籤。您試圖將該標籤設置爲href的值。這顯然不起作用,因爲元素不是有效的URL。實際上,你所得到的代碼看起來像:

<a class="dropdown-toggle" 
    role="button" 
    aria-expanded="false" 
    href="<a href=".....">blah</a>" 
    data-toggle="dropdown">Gaming <span class="caret"></span></a> 

這不是一個有效的href。您應該使用@Html.Action(...)。這隻會生成URL。

+0

然後我在href裏面放什麼? – xDDD

+0

我在答案的最後告訴過你。 – Amy

+0

'@ Html.Action'調用控制器操作,如鏈接的MSDN文檔中所述,它不會生成URL,'@ Url.Action'。 – tdragon