【问题标题】:How to execute javascript from c# in asp.net如何在asp.net中从c#执行javascript
【发布时间】:2016-07-05 01:47:10
【问题描述】:

我正在开发 asp.net mvc 应用程序,我必须在其中执行 CRON 作业才能执行此操作:

==> 我必须每两分钟执行一次我的应用程序的网页(其中包含 ajax 请求)。就像不时跟踪某人一样。

(它基本上是在执行google map api,所以必须使用javascript)

我想知道如何执行包含 javascript 的网页,就像我们在浏览器上执行的一样。我在 MVC 中调用 Application_BeginRequest 函数,该函数每两分钟后由 cron 作业调用。那么如何执行包含 javascript 的演示页面。

我搜索了很多,但没有找到任何有用的资源。

编辑: 应用程序的工作:

1- CRON 作业每两分钟调用一次 Application_Begin 函数

2- 然后我想调用包含 javascript 和 ajax 请求的 DemoPage。首先,当请求演示页面时,对返回一些数据的服务器进行 ajax 调用 3.然后从ajax成功开始,我使用javascript google map api(使用RouteBox,在路线上定位latlng)使用其他一些数据执行响应数据。

3- 如果点不在路线中,它将发送警报电子邮件。

解释我想要什么有点困难,但我想你明白我的意思了吗?

更多详情:

当页面请求时,它返回路径的 json 字符串,并且我有一个 latlngs 列表,我需要针对该 json 字符串进行测试,该字符串由用 javascritp 编写的 RouteBox 类完成。

【问题讨论】:

  • 您的问题令人困惑。听起来您想跟踪打开您的页面的用户。您只需要 javascript setInterval 每 2 分钟调用一次 api。我无法想象调用 BeginRequest 是一个好主意,或者它将如何将虚假请求与用户关联起来。如果您没有在您的网站上跟踪实际用户,您可以使用HttpClient 来调用他们的 REST api 而无需 javascript。或者您可以在服务器上运行像 V8 这样的 javascript 引擎。但是那些会跟踪我认为保持静止的服务器。
  • 你想知道谁的位置?
  • latlng 存储在数据库中,例如 10 辆汽车的 latlng。如果我知道如何自动调用网页,我可以做任何事情
  • 即使您知道如何在服务器上调用网页,您也将始终获得服务器位置。要获取客户端位置,代码必须在客户端上执行,听起来您没有。
  • 我不想获取任何人的位置,我的数据库中有位置,我只想让服务器在该页面上执行 javascript

标签: javascript c# ajax asp.net-mvc model-view-controller


【解决方案1】:

您可以从控制器返回脚本:

public ActionResult SampleAction()
        {
            return JavaScript("alert(Sample!');");
        }

【讨论】:

  • 以及如何从 globle.asax 中的 Application_BeginRequest 调用 sampleAction
  • 你可以像这样添加脚本:context.Response.ContentType = "application/x-javascript"; context.Response.Write("alert(alert(Sample!')"); 但我想 Application_BeginRequest 不是为此目的而设计的。
  • 基本上,如果用户执行页面时,会执行整个 javascript 代码并向管理员发送警报邮件。我想每两分钟自动执行一次此操作,但不是由用户执行,所以我正在执行此任务
  • 比在您的情况下最好在服务器端执行此操作而无需任何 javascript。使用一些 SMTP 客户端并创建一个线程或任务来发送电子邮件。
  • 但是如何在没有 google map api (javascript) 的情况下测试 latlngs。邮件将根据 latlng 的结果发送
猜你喜欢
  • 1970-01-01
  • 2011-02-25
  • 1970-01-01
  • 2011-02-12
  • 1970-01-01
  • 2012-09-14
  • 2023-04-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多