C# 从javascript调用代码隐藏方法?
我在代码隐藏中使用了以下方法:C# 从javascript调用代码隐藏方法?,c#,javascript,asp.net,code-behind,C#,Javascript,Asp.net,Code Behind,我在代码隐藏中使用了以下方法: protected void myMethod() { Literal1.Text = System.DateTime.Now.ToString(); } 我需要每秒调用这个方法。我发现我应该使用javascipt,下面是我的scipt: <script> function test() { // ??? } setInterval(test, 1000); </script>
protected void myMethod()
{
Literal1.Text = System.DateTime.Now.ToString();
}
我需要每秒调用这个方法。我发现我应该使用javascipt,下面是我的scipt:
<script>
function test() {
// ???
}
setInterval(test, 1000);
</script>
功能测试(){
// ???
}
设定间隔(试验,1000);
但是我不知道如何从javascript调用myMethod?使用AJAX。这将允许您从客户端调用指定的服务器端方法
从上面的链接:
function makeRequest(url) {
if (window.XMLHttpRequest) { // Mozilla, Safari, ...
httpRequest = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
try {
httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}
}
if (!httpRequest) {
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}
httpRequest.onreadystatechange = alertContents;
httpRequest.open('GET', url);
httpRequest.send();
}
function alertContents() {
if (httpRequest.readyState === 4) {
if (httpRequest.status === 200) {
alert(httpRequest.responseText);
} else {
alert('There was a problem with the request.');
}
}
}
})();
您必须使用[WebMethod]
属性来修饰服务器端方法,并将其声明为public和static
从MSDN:
[System.Web.Services.WebMethod(EnableSession=true)]
public int GetNumberOfConversions()
{
return (int) Session["Conversions"];
}
就这么简单
然而,我不得不质疑每秒从客户端到服务器调用一个方法。您可以单独用JavaScript处理日期事务。我敢打赌,往返旅行对你不太合适 如果您想避免服务器往返(可能是因为网络延迟),可以像这样使用javascript
var now = new Date();
dateFormat(now, "dddd, mmmm dS, yyyy, h:MM:ss TT");// Saturday, June 9th, 2007, 5:46:21 PM
查看其他类型的日期格式是否可行。往返,嗯,你是对的,这只是一个例子,在我的网站中,我的数据库中有endDate,我需要从数据库中获取此endDate,然后动态显示剩余时间(endDate-System.DateTime.Now)。我怎么做?嗯,好的。如果将时间值存储在数据库中,那么在服务器上进行检查可能会更好。在客户端做任何事情都会带来诸如处理时区等问题,如果需要比较自己的时间价值,这些问题可能会变得复杂。使用AJAX将是最好的选择。我建议你不要显示剩余的准确时间,而要做一些像“剩余2分钟”、“少于30秒”之类的事情,这样你就不需要100%准确的时间。我认为你的例子太简单了。如果您让我们知道您每秒钟都在呼叫什么,以及为什么我们可以针对您的情况提供更好的答案。@Hellfire我想他只是想知道如何从客户端到服务器的一般方法。我编辑了我的问题,以从我提供的链接中提取示例。看一看。