@ url.Action(“action”,“controller”)无法在mvc 4中运行

时间:2014-06-12 17:08:58

标签: asp.net-mvc asp.net-mvc-3 model-view-controller

@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 { id=@item.Id }, null)

控制器代码

 public ActionResult GetData(Guid id)
        {
// code 

没有被调用GetData为什么会这样?调试后没有错误:/

2 个答案:

答案 0 :(得分:2)

<a  title="Name"  onclick="location.href='@Url.Action("GetData", "Groups", 
new { id = @item.Id })'" > @item.TypeName</a>

我觉得这对你很有用。

答案 1 :(得分: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>

您也可以直接使用href属性

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