将值从ASP.NET页面发布到C#

将值从ASP.NET页面发布到C#,c#,javascript,asp.net,screen-resolution,C#,Javascript,Asp.net,Screen Resolution,我有一个JavaScript函数,如下所示: function getWindowSize() { test.value = $(window).width(); test2.value = $(window).height(); } window.onresize = getWindowSize; 在ASP.NET页面中: <input type="text" id="test2" value="Test"/> <input type="text" id=

我有一个JavaScript函数,如下所示:

function getWindowSize() {
   test.value = $(window).width();
   test2.value = $(window).height();
}

window.onresize = getWindowSize;
在ASP.NET页面中:

<input type="text" id="test2" value="Test"/>  
<input type="text" id="test" value="Test"/> 

这将在屏幕大小更改时填充字段。当我将页面元素设置为具有
runat=“server”
时,它们不会填充屏幕大小,并且无法在服务器端捕获它


有什么建议吗?

如果您有服务器标签,您需要使用
ClientID
。您当前没有使用getElementById,但应该获取DOM元素以实现更好的浏览器兼容性。如果您有Framework4及更高版本,则可以在不使用
ClientID的情况下使用和执行它

Javascript

function getWindowSize() {
       document.getElementById('<%= test.ClientID %>').value = $(window).width();
       document.getElementById('<%= test2.ClientID %>').value = $(window).height();
}
window.onresize = getWindowSize;
function getWindowSize() {
       $('.WidthValue') = $(window).width();
       $('.HeightValue') = $(window).height();
}
函数getWindowsSize(){ document.getElementById(“”).value=$(window.width(); document.getElementById(“”).value=$(window.height(); } window.onresize=getWindowsSize;
HTML

<input type="text" id="test2" value="Test" runat="server" />  
<input type="text" id="test" value="Test" runat="server" /> 
<input type="text" id="test" value="Test" class="WidthValue" runat="server" /> 
<input type="text" id="test2" value="Test" class="HeightValue" runat="server" />  

由于我看不到完整的代码,我将假设ASP.NET将Id属性替换为生成的属性(类似于_ctl$Container$test)。作为一种解决方法,如果使用jQuery,则可以使用CSS类:

Javascript

function getWindowSize() {
       document.getElementById('<%= test.ClientID %>').value = $(window).width();
       document.getElementById('<%= test2.ClientID %>').value = $(window).height();
}
window.onresize = getWindowSize;
function getWindowSize() {
       $('.WidthValue') = $(window).width();
       $('.HeightValue') = $(window).height();
}
HTML

<input type="text" id="test2" value="Test" runat="server" />  
<input type="text" id="test" value="Test" runat="server" /> 
<input type="text" id="test" value="Test" class="WidthValue" runat="server" /> 
<input type="text" id="test2" value="Test" class="HeightValue" runat="server" />  

您使用的是母版页吗?因为在使用母版页添加
ASP.NET
表单控件时,它们使用前缀标识控件:

<input id="ctl00_ContentPlaceHolder1_txtName" class="textfield" type="text" name="ctl00$ContentPlaceHolder1$txtName">

其中ctl00\u contentplaceholder 1\u是母版页的前缀

这可能是javascript函数不填充字段的原因。
如何识别对象test和test2?

谢谢。我尝试了这个和html元素从java脚本中获取任何值。您的问题解决了吗?您的评论对于meCheck it now来说是相当模糊的,请确保您有runat=“server”关于我现在如何在服务器端用c#捕获它的任何建议?我一直得到原始值,它们被设置为“test”。在Page_load中,我捕获了test.value的值,但我认为它是在java脚本设置新值之前完成的。您可以使用一些隐藏字段,使其在服务器上运行,并分配更改后的值,在代码中提取它们。是的,我使用的是母版页。查看它,id变为“MainContent_test2”如何识别javascript对象test和test2?在javascript中,我使用test.value=$(window.width();确定用于分配屏幕宽度的测试