我在剃刀视图(.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) ;
}
有没有人知道我缺少什么?
答案 0 :(得分:0)
我仍然不确定为什么它在Firefox中有效,但在Chrome和IE中却没有,但我找到了适用于所有人的解决方案。 我在jquery中为链接的click函数写了一个事件。
$("#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();
});
这确保无论您使用何种浏览器,只要点击该复选框,都会点击该链接。