如何从后面的C#代码中调用Javascript?

时间:2019-04-06 15:20:19

标签: javascript c#

我知道答案无处不在,但我只是从桌面应用程序转移到Web应用程序,对我来说,当前的帖子看起来像希腊语。

我的情况:

这是供公司内部使用的基于Web的许可证申请。起点是现有许可证的网格,或者用户可以创建一个新的许可证。

在许可证的生命周期中有四种状态,我必须考虑两个“条件”(初始加载数据库值的页面,以及用户单击按钮以将许可证升级到下一个状态)。

因此,在最初的OnLoad事件中,我获取了传递给页面的行ID的db行(对于新的许可,则为null),并填充了一些控件并通过根据设置类属性来隐藏/显示某些<div>存储在数据库中的状态。到目前为止我很好。

OnLoad不是静态的,所以所有这些魔术都是在后面的C#代码中执行的(我比Javascript更舒适地进行编码)-状态有一个切换,我调用了适当的方法来使页面看起来更漂亮就像我需要它。我在这里也很好。

现在乐趣开始了-用户从下拉菜单中选择下一个状态,然后单击一个按钮。 JavaScript拾取click事件并创建具有新状态的部分模型对象,并向用户在文本框中输入的一些注释,然后传递到后面代码中的静态方法,在该方法中调用存储过程并更新一些db值。工作正常。

该方法后面的静态代码要做的最后一件事是创建一个JSON字符串响应,其中包含一些数据,这些数据基本上告诉页面更新是否成功,如果成功,则Javascript更新一些控件,并隐藏/显示{{1} }区域。
我的问题是,为什么我的代码是两个完全相同的文件?我不在乎服务器还是客户端,是否可以将方法放在一个可以同时针对两种情况调用的文件中?

由于我对后面的代码比较满意,所以我从这里开始,但是由于我的AJAX调用是静态方法,因此我不能只调用C#方法在页面加载时执行隐藏/显示(因为它们实际上是触摸文本框/ <div>控件,它们不能是静态的。

所以现在,我正在寻找如何在Java脚本中放置各个特定于状态的操作,并在OnLoad()期间从switch(state)方法中的代码中调用它们。

标准答案是“您不能从后面的代码中调用Javascript”,但是随后每个人都使用Register.this.that(一堆值)显示了一个示例,它们似乎都有按钮代码中的click事件位于Java代码所在位置的背后。我的事件实际上是OnLoad(),因此从理论上讲也是一样。

如果此Register东西是我想要的答案,请不要仅粘贴一行代码并说出答案。退后一步,解释一下发生了什么情况(我将提供一些示例代码,您可以将其添加到其中)。

<div>

0 个答案:

没有答案