2014-06-12 44 views
-2
@for (var i = 0; i < Model.GroupTypeNames.Count; i++) 
      { 
       <nav id="options" class="work-nav"> 
        <ul id="filters" class="option-set" data-option-key="filter">       
         <li> 
          @{ 
       var item = Model.GroupTypeNames[i]; 
       var selected = i == 0 ? " class=\"selected\"" : ""; 
          } 

        <a onclick='window.location.href('@Url.Action("GetData", "Groups", new { id = @item.Id })')' data-option-value="*"@Html.Raw(selected)>@item.TypeName</a> 

         </li> 
        </ul> 
       </nav> 
      } 

不工作我試圖用這種方式來 @Html.ActionLink(@item.TypeName, "GetData", "Groups", new { [email protected] }, null)@ Url.Action( 「行動」, 「控制器」)在MVC 4

控制器代碼

public ActionResult GetData(Guid id) 
     { 
// code 

沒有得到所謂的GetData爲什麼是嗎 ?調試後沒有錯誤:/

+3

您的JavaScript是不好的。你使用'''單引號作爲onclick的屬性值以及你的javascript中的字符串。 –

+2

您的操作被命名爲GetDatabyId,但您使用的是「GetData」作爲操作名稱 – MikeSW

+1

請包括操作產生的html,爲什麼它們不正確以及您是什麼期待。 –

回答

0

您在構建鏈接時錯誤地使用了引號。使用單獨的變量來構建鏈接,然後使用它來呈現HTML。

@{ 
    var item = Model.GroupTypeNames[i]; 
    var selected = i == 0 ? " class=\"selected\"" : ""; 
    var url = @Url.Action("GetDataById", "Groups", new {id = @item.Id}); 
} 
<a onclick='window.location.href("@url")' 
    data-option-value="*" 
    @Html.Raw(selected)>@item.TypeName</a> 

相反的onclick功能,你也可以直接使用href屬性

<a href="@url" data-option-value="*" @Html.Raw(selected)>@item.TypeName</a>