Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET MVC 4+,禁用javascript_C#_Javascript_Jquery_Asp.net Mvc - Fatal编程技术网

C# ASP.NET MVC 4+,禁用javascript

C# ASP.NET MVC 4+,禁用javascript,c#,javascript,jquery,asp.net-mvc,C#,Javascript,Jquery,Asp.net Mvc,我正在开发一个ASP.NETMVC4Web应用程序。该应用程序的一个要求是,即使用户禁用了javascript,页面也应该能够工作。 哪种方法是最好的? 我应该创建两个视图吗 一个使用jquery的视图,用于单选按钮回发的javascript代码,等等 一个新的视图,只有HTML,没有javascript 这是正确的做法还是良好的做法 如果用户想要查看特定页面,我如何显示一条消息,说明用户需要启用javascript 提前谢谢。您要找的术语是“优雅降级”和“渐进增强” 正确的方法不是创建单独的视

我正在开发一个ASP.NETMVC4Web应用程序。该应用程序的一个要求是,即使用户禁用了javascript,页面也应该能够工作。 哪种方法是最好的? 我应该创建两个视图吗

  • 一个使用jquery的视图,用于单选按钮回发的javascript代码,等等

  • 一个新的视图,只有HTML,没有javascript

  • 这是正确的做法还是良好的做法

    如果用户想要查看特定页面,我如何显示一条消息,说明用户需要启用javascript


    提前谢谢。

    您要找的术语是“优雅降级”和“渐进增强”

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

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

    这个页面可以使用或不使用JavaScript。没有JavaScript的用户只需发布表单并重新加载页面。那些使用JavaScript的人将拥有JavaScript代码“覆盖”的功能,以产生新的功能

    目标是应用程序的所有功能都可以在不使用任何JavaScript的情况下访问。然后使用JavaScript“注入”其功能并覆盖非JavaScript功能,这样,如果启用了JavaScript,用户会有更好的用户体验

    如果用户想要查看特定页面,我如何显示一条消息,说明用户需要启用javascript


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

    您要寻找的术语是“优雅降级””和“渐进增强”

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

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

    这个页面可以使用或不使用JavaScript。没有JavaScript的用户只需发布表单并重新加载页面。那些使用JavaScript的人将拥有JavaScript代码“覆盖”的功能,以产生新的功能

    目标是应用程序的所有功能都可以在不使用任何JavaScript的情况下访问。然后使用JavaScript“注入”其功能并覆盖非JavaScript功能,这样,如果启用了JavaScript,用户会有更好的用户体验

    如果用户想要查看特定页面,我如何显示一条消息,说明用户需要启用javascript


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

    在我看来……在您的视图中,您只需更改控制器方法的访问方式……如果启用了js,您可以使用ajax调用它们……如果没有,然后,在窗体上直接指向控制器方法时……您应该研究渐进增强的技术。基本上,让你的应用程序在没有JavaScript的情况下工作,然后在上面分层JavaScript特性。例如,没有JavaScript我怎么能做单选按钮回发?有可能吗?在我看来……在你的视图中,你只需要改变你的控制器方法的访问方式……如果你启用了js,你可以用ajax调用它们……如果没有,那么直接操作你的表单指向你的控制器方法……你应该看看