0

我在剃刀视图(.NET MVC3)中有一个链接,它是排序功能的一部分,显示所有记录(活动和存档)或活动记录(页面加载的默认值)。它在 Firefox 中运行良好。但它仅在我单击链接的文本部分时才有效,而不是在选中复选框以检查 chrome 和 IE 时。这是我使用的代码。

        <a id="lnkShowAll" href="@Url.Action("showAll", "myController", new { showOnlyActive = !Model.Active })" >
        <input id="chkShowAll" type="checkbox"  
                @if(!Model.Active){
                    @: checked="checked"
                } >
          Show All (<span class="activeFont">Active</span> / <span class="archivedFont">Archived</span> )
        </a>

这是控制器,但我怀疑问题出在控制器上,因为选中复选框时没有调用它

public ActionResult Index(bool showOnlyActive = true)
    {
        RecordList recordList = searchForRecordList(showOnlyActive);
        return View("Index", recordList) ;
    }

有谁知道我错过了什么?

4

1 回答 1

0

我仍然不确定为什么它在 Firefox 中有效,但在 Chrome 和 IE 中无效,但我找到了适用于所有人的解决方案。我为jquery中链接的点击功能写了一个事件。

        $("#lnkShowAll").click(function(event)
        {
          var link = $(this);
          var target = link.attr("target");

          if($.trim(target).length > 0)
          {
            window.open(link.attr("href"), target);
          }
          else
          {
             window.location = link.attr("href");
          }

          event.preventDefault();
        });

并添加了一个点击功能,当复选框被选中/取消选中时触发链接的点击事件。

$("#chkShowAll").click(function(){
            $("#lnkShowAll").click();
});

这样可以确保无论您使用什么浏览器,只要单击复选框,就会单击该链接。

于 2013-07-02T15:29:16.247 回答