【问题标题】:How to set ASP.NET server time in Javascript如何在 Javascript 中设置 ASP.NET 服务器时间
【发布时间】:2010-11-19 21:47:10
【问题描述】:

如何在 Javascript 中将文本框值设置为相当于 DateTime.Now 的值?我试过这些

$('#LastUpdatedTime').val('<%= System.DateTime.Now %>');
$('#LastUpdatedTime').val('<%= System.DateTime.Now.ToString() %>');

两者都将值设置为文字字符串

【问题讨论】:

  • 这是在您的代码前端 (.aspx/.ascx) 中还是在外部 .js 文件中?
  • 它在一个外部的js文件中...
  • 我尝试了下面发布的一些解决方案(由 MPD 和 Mister Cook),但它总是返回最初加载的时间......它似乎没有运行 DateTime。现在每次函数叫。想知道我做错了什么......
  • @Prabhu 如果您每次都需要从服务器获取时间,则每次都需要发出请求。一旦服务器发送页面,时间值在客户端设置并且不会改变。查看向装饰为 Web 方法的服务器端函数发出 Ajax 请求,以便您可以使用 Ajax 请求调用它。 jQuery 让这很容易。

标签: c# javascript .net asp.net jquery


【解决方案1】:

在简单地返回服务器标签的 aspx 中添加一个 javascript 函数,然后从您的 .js 文件中调用此函数。即在 ASPX 中添加:

function GetTimeNow () { return '<%= System.DateTime.Now.ToString() %>';}

【讨论】:

  • 我试过这个,但它总是返回最初加载的时间......它似乎没有运行 DateTime.Now 每次调用该函数时。想知道我做错了什么......
【解决方案2】:

您不能将服务器标签放在 javascript 文件中。

您必须将代码放在由 ASP.NET 引擎处理的文件中,例如你的 .aspx 文件。

(可以配置服务器,让 ASP.NET 引擎也处理 .js 文件,但这不是一个好的解决方案。Javascript 文件比普通页面缓存更广泛,因此不确定服务器是否执行代码每次使用该文件时。)

【讨论】:

    【解决方案3】:

    您在 aspx 页面上的 &lt;script&gt; 标签内有它们吗?

    aspx 页面应该是这样的

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    </head>
    <body>
        <form id="form1" runat="server">
    
    <script type="text/javascript">
        //put your JAVASCRIPT here
        $('#LastUpdatedTime').val('<%= System.DateTime.Now %>');
        $('#LastUpdatedTime').val('<%= System.DateTime.Now.ToString() %>');
    </script>
        </form>
    </body>
    </html>
    

    【讨论】:

    • 我将它放在一个单独的 js 文件中...其他 js 内容在该文件中可以正常工作
    • 它必须在 aspx 文件中,否则它不会被服务器解析。没办法。
    • 那是你的问题。像这样的服务器端代码在外部 .js 文件中不起作用。您需要将该 javascript 放在页面本身上,就像 Laramie 的示例所示。
    【解决方案4】:

    那个代码很好。问题是您的&lt;%= System.DateTime.Now %&gt; 代码没有被解析为服务器端代码。页面的其余部分是什么样的?

    编辑: 由于它位于外部 JS 文件中,因此您始终可以将“.js”文件重命名为“.aspx”,以便 ASP.Net 开始处理它。然后你只需要改变你的&lt;script&gt;标签来使用“.aspx”这个名字。

    另一种选择是将您的服务器配置为通过 ASP.Net 处理程序发送“.js”文件。

    【讨论】:

    • 这有点明显。不过他是怎么解决的呢?
    【解决方案5】:

    在 .aspx 主页面的页眉中写出时间怎么样

    <script type="text/javascript">
    var now = <%= System.DateTime.Now %>;
    </script>
    

    然后做

    $('#LastUpdatedTime').val(now);
    

    您只需要确保正确命名事物,以便外部文件中的 JS 从全局范围获取值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多