【问题标题】:Asp.Net Get Screen WidthAsp.Net 获取屏幕宽度
【发布时间】:2017-08-08 15:10:39
【问题描述】:

如何在 Asp.net (C#) 项目中获取服务器端的屏幕宽度?

【问题讨论】:

标签: c# asp.net


【解决方案1】:

把它放在你的表单上:

<input type="hidden" value=""
   name="clientScreenHeight" id="clientScreenHeight" />
<input type="hidden" value=""
   name="clientScreenWidth" id="clientScreenWidth" />

这是加载脚本:

$(document).ready(function () {
    $("#clientScreenWidth").val($(window).width());
    $("#clientScreenHeight").val($(window).height());
});

这是服务器端代码:

string height = HttpContext.Current.Request.Params["clientScreenHeight"];
string width = HttpContext.Current.Request.Params["clientScreenWidth"];

【讨论】:

  • 请注意,要注意是否需要窗口或屏幕宽度。在 Javascript 中屏幕表示显示,因此请使用 screen.width。使用规定的窗口宽度代码,即,如果用户没有全屏运行等,您将获得调整后的窗口大小。这可能至关重要,具体取决于您对数字所做的事情。
  • 尝试在 VS C# 项目的 aspx 文件中添加隐藏的输入值 clientScreenHeight 和 clientScreenWidth,并将 onload 脚本添加到使用 ScriptManager.RegisterStartupScript(this, GetType() 加载页面时调用的 Page_Load 函数, "ClientViewport", script, true) 带有如上图所示的脚本。当我使用服务器端代码检索高度和宽度时,它们仅包含在 aspx 文件中设置的空字符串。存储值的脚本不起作用,但它似乎没有任何错误。我是否将输入的隐藏对象放在正确的位置并正确执行脚本?
  • 问题是我正在加载的表单母版页中的 ScriptManager 控件中没有任何脚本。添加以下脚本会导致服务器端代码检索正确的值:
  • &lt;asp:ScriptReference Name="MsAjaxBundle" /&gt; &lt;asp:ScriptReference Name="jquery" /&gt; &lt;asp:ScriptReference Name="jquery.ui.combined" /&gt;
【解决方案2】:

您可以使用 javascript 读取它并将结果提交到服务器。
仅服务器端的解决方案不存在,因为 html 不会在请求中自动提交此类数据。

【讨论】:

  • @Readers 建议阅读下面的一些答案以及 Yitzhak or50 给出了我正在寻找的答案。
  • @Readers 那么当主页上需要屏幕尺寸但仍然没有请求完成时会发生什么?
【解决方案3】:

使用下面的代码

int width = (Request.Browser.ScreenPixelsWidth) * 2 - 100;
int height = (Request.Browser.ScreenPixelsHeight) * 2 - 100;

【讨论】:

  • 此代码返回相同的值,而与浏览器窗口的实际大小无关。在 Chrome UA Spoofer 上使用 UserAgent 欺骗来模拟不同的浏览器并更改窗口大小不会更改这些值。
【解决方案4】:

获取角色

Request.Browser.ScreenCharactersWidth
Request.Browser.ScreenCharactersHeight

获取分辨率

您需要使用 javascript 或 jquery 从客户端发送数据 我用这个代码很好的工作

var ScreenPixelsHeight  = window["innerHeight"];  
var ScreenPixelsWidth  = window["innerWidth"];
var JSLink = "http://www  +  "&ScreenPixelsHeight="+ScreenPixelsHeight+
"&ScreenPixelsWidth="+ScreenPixelsWidth;

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-25
  • 2011-09-25
  • 1970-01-01
  • 2011-06-12
  • 1970-01-01
  • 2021-02-07
相关资源
最近更新 更多