2012-11-21 52 views
0

Un在瀏覽器中呈現@ Html.ActionLink時的預期結果。下面是我寫在jqGrid中用於顯示鏈接列的代碼。ASP.NET MVC4中的Html.ActionLink()無法正確呈現

{ name: 'Restart', 
         formatter: function (cellvalue, options, rowObject) { 
          var x = '@Html.ActionLink("Restart", "Dashboard", new { requestId ="myId" }, new { onclick = "return confirm('Are you sure to Restart?');" })'; 
          return x.replace("myId",rowObject[8]); 
         }, align: 'left', width: 100 
        } 

在瀏覽器中渲染之後,它顯示這樣

<a href="/DashBoard/Dashboard?requestId=2362e13b-e4fc-4140-b7ad-1bd0e82b6bde" onclick="return confirm('Are you sure to Restart?');">Restart</a> 

當我替換@ Html.ActionLink(「重新啓動」,「重新啓動」)在上述code.It顯示正確這樣。

<a href="/Dashboard/Restart?requestId=2362e13b-e4fc-4140-b7ad-1bd0e82b6bde" onclick="return confirm('Are you sure to Restart?');">Restart</a> 

爲什麼ASP.NET MVC4產生Un預期結果?有沒有解決這個問題?

回答

1

您不應該將此行爲視爲意外。您正在使用LinkExtensions.ActionLink方法如下過載能力:

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper, 
    string linkText, 
    string actionName, 
    Object routeValues, 
    Object htmlAttributes 
) 

所以第二個參數是操作名稱和控制器名稱默認爲當前控制器。

+0

好的。現在我得到了我的錯誤 – Jameel

+0

這不是一個意想不到的行爲。這是我傳遞參數的問題 – Jameel

0

它,因爲你需要檢查Html.ActionLink的參數

我認爲你是在DashBoardController

第一對是你想要顯示的鏈接 第二個字符串是參數 第三個是控制器

等等...

你可能想看看你,並與Url.Action做(),使這個代碼有點整潔