Asp.net mvc 如何在ASP.NET MVC中禁用当前页面链接?

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设置为“”的方式呈现菜单 有关详细信息,我建议

我现在正在研究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设置为“”的方式呈现菜单


有关详细信息,我建议您参考《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");
        }
    });
    

    但我也会修改样式,这样它就不会看起来像断开的链接或其他东西。

    感谢您推荐本书中非常有用的章节!感谢您推荐本书中非常有用的一章!