ASP.NET MVC 4+ , javascript disabled

本文关键字:javascript disabled NET MVC ASP | 更新日期: 2023-09-27 18:11:15

我正在做一个ASP。NET MVC 4 web应用程序。这个应用程序的一个要求是,页面应该能够工作,即使用户有javascript禁用。哪一种方法是最好的?我应该创建2个视图吗?

  1. 一个视图使用jquery, javascript代码单选按钮回发等

这是正确的还是一个好的做法?

我怎么能显示一个消息,说用户需要启用javascript,如果想看到一个特定的页面?

提前感谢。

ASP.NET MVC 4+ , javascript disabled

您要查找的术语是"优雅降级"answers"渐进增强"。

正确的方法是不要创建单独的视图。毕竟,您的服务器端代码如何知道要呈现哪个视图呢?无论客户端是否启用了JavaScript,都与服务器端代码无关。相反,正确的方法是创建一个在任何必要场景下都能工作的视图。

例如,假设您希望通过AJAX发布表单,并在发布后显示消息。显然,没有JavaScript就无法做到这一点。因此,您要做的是使用普通表单创建一个普通页面,该页面发送到服务器端操作并返回显示消息的相同页面。然后,您将编写一些JavaScript代码来附加到表单的提交事件,取消事件传播,向服务器端操作(可能是不同的操作,或者可能是相同的操作)发出AJAX请求,并解析来自页面的结果……尽管后者似乎是一个比必要的更繁重的操作),并将消息作为响应的结果显示。

无论是否使用JavaScript,这个页面都可以工作。那些没有使用JavaScript的用户只需提交表单并重新加载页面即可。使用JavaScript的用户将会被JavaScript代码"覆盖"以产生新的功能。

我们的目标是不需要任何JavaScript就可以访问应用程序的所有功能。然后使用JavaScript"注入"它的功能并覆盖非JavaScript功能,这样如果它被启用,用户就会有更好的用户体验。

我怎么能显示一个消息,说用户需要启用javascript,如果想看到一个特定的页面?

这似乎与"即使用户禁用了javascript,页面也应该能够工作"的要求完全冲突。我想您可以使用noscript标记(我在中没有见过这些标记,不确定它们是否曾经是技术标准),或者甚至只是默认显示消息,并在页面呈现时使用JavaScript隐藏它(因此,使用JavaScript的人不会看到它)。但无论哪种方式,这都意味着你将拥有需要JavaScript的功能,这与要求相反。