Asp.net mvc 如何在ASP.NET MVC中禁用当前页面链接?
我现在正在研究ASP.NET MVC,并注意到在默认情况下由Visual Studio创建的ASP.NET MVC应用程序中,当用户在“主页”和“关于”页面上时,“主页”和“关于”链接保持活动状态,单击当前页面后,链接页面正在重新加载自身 禁用指向用户已打开的页面的链接的正确方法是什么 如何在不违反ASP.NET MVC方法的情况下做到这一点?“禁用”html只是删除href标记。这里不能有任何asp net mvc魔术。您需要以将当前页面的href设置为“”的方式呈现菜单 有关详细信息,我建议您参考《Pro ASP.NET MVC Framework》一书的第5章。“禁用”html只是删除href标记。这里不能有任何asp net mvc魔术。您需要以将当前页面的href设置为“”的方式呈现菜单Asp.net mvc 如何在ASP.NET MVC中禁用当前页面链接?,asp.net-mvc,user-interface,Asp.net Mvc,User Interface,我现在正在研究ASP.NET MVC,并注意到在默认情况下由Visual Studio创建的ASP.NET MVC应用程序中,当用户在“主页”和“关于”页面上时,“主页”和“关于”链接保持活动状态,单击当前页面后,链接页面正在重新加载自身 禁用指向用户已打开的页面的链接的正确方法是什么 如何在不违反ASP.NET MVC方法的情况下做到这一点?“禁用”html只是删除href标记。这里不能有任何asp net mvc魔术。您需要以将当前页面的href设置为“”的方式呈现菜单 有关详细信息,我建议
有关详细信息,我建议您参考《Pro ASP.NET MVC Framework》一书第5章。这是我认为javascript适合的情况之一。对于一小部分禁用了javascript的用户来说,链接只是处于活动状态——这没什么大不了的,但是对于大多数用户来说,每个页面上一行简单的javascript可以通过分配一个只返回false的onclick处理程序来禁用相应的链接 例如:
<script type="text/javascript">
$('#HomeLink').click(function(e) {
e.preventDefault();
return false;
});
</script>
$(“#HomeLink”)。单击(函数(e){
e、 预防默认值();
返回false;
});
无论如何,UI元素的控制都应该在视图中维护,我认为javascript就是其中之一。对于一小部分禁用了javascript的用户来说,链接只是处于活动状态——这没什么大不了的,但是对于大多数用户来说,每个页面上一行简单的javascript可以通过分配一个只返回false的onclick处理程序来禁用相应的链接 例如:
<script type="text/javascript">
$('#HomeLink').click(function(e) {
e.preventDefault();
return false;
});
</script>
$(“#HomeLink”)。单击(函数(e){
e、 预防默认值();
返回false;
});
无论如何,UI元素的控制应该保持在视图中,我倾向于认为,即使在所选页面上,也应该允许链接保持活动状态。这样,您就可以允许用户在需要时明确地刷新所显示数据的视图。该链接应突出显示,以表明这是当前选定的页面 否则,如果不希望用户刷新页面,则应完全删除链接(或
或其他内容),以便在应用程序上下文中,不存在刷新页面的概念,而不是通过禁用的链接指示当前所选页面,而是使用显式标题
要实现此结果,可以使用以下方法:
$("#menu").find('*[href]').each(function(index) {
if ($(this).attr("href") == window.location.pathname) {
$(this).parents("li").html("");
}
});
如果需要保持元素可见,只需删除href:
$("#menu").find('*[href]').each(function(index) {
if ($(this).attr("href") == window.location.pathname) {
$(this).removeAttr("href");
}
});
但我也会修改样式,这样它就不会看起来像断开的链接或其他东西。我倾向于认为,即使在所选页面上,也应该允许链接保持活动状态。这样,您就可以允许用户在需要时明确地刷新所显示数据的视图。该链接应突出显示,以表明这是当前选定的页面 否则,如果不希望用户刷新页面,则应完全删除链接(或
或其他内容),以便在应用程序上下文中,不存在刷新页面的概念,而不是通过禁用的链接指示当前所选页面,而是使用显式标题
要实现此结果,可以使用以下方法:
$("#menu").find('*[href]').each(function(index) {
if ($(this).attr("href") == window.location.pathname) {
$(this).parents("li").html("");
}
});
如果需要保持元素可见,只需删除href:
$("#menu").find('*[href]').each(function(index) {
if ($(this).attr("href") == window.location.pathname) {
$(this).removeAttr("href");
}
});
但我也会修改样式,这样它就不会看起来像断开的链接或其他东西。感谢您推荐本书中非常有用的章节!感谢您推荐本书中非常有用的一章!