C# 决定是否禁用/启用javascript并执行服务器端代码

C# 决定是否禁用/启用javascript并执行服务器端代码,c#,jquery,asp.net,ajax,browser,C#,Jquery,Asp.net,Ajax,Browser,我有一个aspx页面,它在检测到客户端的屏幕大小后会加载几个图像。我是这样做的: 在jquery代码中,我首先检测用户屏幕的大小,然后根据大小进行一些计算,以确定要从数据库中提取的图像数量。然后使用jQueryAjax调用一个返回json响应的web服务。代码获取json并创建页面 现在,若用户禁用了javascript,那个么这种方法就行不通了。现在我必须使用c#代码对代码隐藏创建页面。问题是,我无法检测是否从代码隐藏中禁用了javascript(我认为这是不可能的)。我不想在顶部显示一个按钮

我有一个aspx页面,它在检测到客户端的屏幕大小后会加载几个图像。我是这样做的: 在jquery代码中,我首先检测用户屏幕的大小,然后根据大小进行一些计算,以确定要从数据库中提取的图像数量。然后使用jQueryAjax调用一个返回json响应的web服务。代码获取json并创建页面

现在,若用户禁用了javascript,那个么这种方法就行不通了。现在我必须使用c#代码对代码隐藏创建页面。问题是,我无法检测是否从代码隐藏中禁用了javascript(我认为这是不可能的)。我不想在顶部显示一个按钮,上面写着“Javascript在浏览器中被禁用。请单击此处显示此页面”。我可以把这个按钮放在noscript标签中。但我不希望用户在看到页面上的图像之前必须单击按钮

我想要的是,若javascript被禁用,系统应该检测到它并立即从代码背后运行一个函数。(在这种情况下,页面大小是固定的,不会随用户屏幕的不同而变化)我不能使用隐藏字段或cookie来检测它,因为它们都需要在检测到javascript被破坏之前进行回发。(我们知道js代码不能在任何页面生命周期事件之前运行)

嗯,我不太希望我的问题能得到解决,但我还是想尝试一下。可能有人已经有了解决办法。如果您能给出更改/更新逻辑的意见或建议,将非常有帮助

任何帮助都将不胜感激

谢谢和问候
Praveen

在不使用javascript的情况下创建默认版本,如果启用了javascript,则重定向到javascript版本

1.)使用JavaScript设置cookie,然后在后续页面视图中使用服务器端脚本测试cookie;适当地交付内容

protected void Page_Load(object sender, EventArgs e)
{
    if (Session["JSChecked"] == null)
    //JSChecked -indicates if it tried to run the javascript version
    {
        // prevent infinite loop
        Session["JSChecked"] = "Checked";
        string path = Request.Url + "?JScript=1";
        Page.ClientScript.RegisterStartupScript(this.GetType(), "redirect", 
          "window.location.href='" + path + "';", true);
    }
    if (Request.QueryString["JScript"] == null)
        Response.Write("JavaScript is not enabled.");
    else
        Response.Write("JavaScript is enabled.");
}
2.)您可以使用
标记

标记
:可用于为浏览器中已禁用脚本或浏览器不支持客户端脚本的用户提供备用内容

<noscript>
    ....
</noscript>

不要再担心禁用javascript的用户了,这在以前是个问题,当它还是新的时候,现在javascript是在网上冲浪的必备工具。小结:这是他们的问题,他们已经禁用了它。@Rawling,这不是那篇文章的复制品,因为我在问之前浏览了太多。我从来都不想要重定向解决方案。我想,可能有一个干净的方法。我还写道:“我不太希望我的问题能得到解决。”。无论如何,谢谢。你需要在那里的某个地方重新定向。服务器不知道客户端是否支持Javascript;您需要让客户端在页面发送后的某个时间点(即重定向)通知服务器。链接问题提供了一种自动重定向到页面无代码版本的方法;其中一个答案提供了一种自动重新定向到启用代码的版本的方法。感谢您的回复。我已经说过我不能使用cookies,因为它们将由页面加载后执行的javascript设置。重定向不适合我的情况。我一直在寻找一个解决方案,我知道我所想的是不可能的。谢谢你的回复。重定向不适合我的情况。我一直在寻找解决方案,我逐渐意识到我所想的是不可能的。