c# - 有没有办法从 C# 调用/运行 JavaScript?

标签 c# javascript asp.net

我有一个 C# 函数,我想在其中调用/运行一些 JavaScript:

protected void DetailsView1_DataBound(object sender, EventArgs e) {
   ...
   // call/run JavaScript
   ...
}

我正在处理一个表单,特别是提交表单。单击“提交”后,将运行几个 C# 函数来处理验证和其他杂项任务。完成这些后,我需要运行一些 JavaScript,但我无法同步这些事件。 JavaScript 是:

...
if (uploader.total.uploaded == 0) {
   if (uploader.files.length > 0) {
      uploader.start();
   }
   e.preventDefault();
}
...

我一直尝试这样做的方法是通过 jQuery 检测“提交”按钮上的点击事件并运行我的 Javascript,但表单本身不会提交。我已经尝试过此的变体,但我没有运气。

那么我该如何实现呢? “RegisterClientScript”是我应该研究的东西吗?如果是这样,可能的解决方案是在 PageLoad 上注册 JavaScript 并将其附加到“提交”按钮吗?如果是这样,我将如何在代码中执行此操作?

如果我需要进一步澄清我的问题,请告诉我。

更新

一点澄清......这个页面上的表单是通过一个按钮提交的:

<asp:CommandField ValidationGroup="request" ButtonType="Image" 
        CancelText="Reset" CancelImageUrl="../images/internal/btn_reset.gif"
        InsertImageUrl="../images/internal/btn_insert.gif" ShowEditButton="True" 
        ShowInsertButton="True" />

这将创建 2 个按钮,插入按钮是提交按钮,因此我将其称为提交按钮。

谢谢,
赫里斯托

最佳答案

在常见问题解答中查看:

http://forums.asp.net/t/1360420.aspx#_How_to_register

private void Button2_Click(object sender, System.EventArgs e)
{
    string str;
    str="<script language='JavaScript'>";   
    str+="selectRange()";
    str+="<script>";
    Literal1.Text=str;
}

ASP.NET WebForms 的主要缺点是您必须购买 WebForm 模型——它在 C# 中执行所有逻辑并让 WebForms 为您处理 JavaScript。这就是为什么您必须像常见问题解答告诉您的那样诉诸扭曲。 WebForms 旨在使您的 Web 应用程序像桌面应用程序一样实现——但这并不总是很有效。

ASP.NET MVC 的主要优点是您可以完全控制标记、JavaScript 等。当然缺点是您无法访问 WebForms 拥有的所有丰富的内容控件。但是,MVC 更适合大多数其他平台上的 Web 编程。

关于c# - 有没有办法从 C# 调用/运行 JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4464441/

相关文章:

javascript - 如何通过 jQuery 阻止警报框

Javascript 正则表达式与非捕获组作为两种选择

c# - 检查记录列是否有一些特殊值

c# - 哪个更好地用于处理请求aspx或ashx?

c# - 林奇 : Get list of letters which have matching records

c# - WPF ComboBox : Trouble converting back-and-forth of Selected Item (Works in all cases, 但就是这个。)

javascript - Mongoose/JS - 跳出代码,跳过任何 then block

asp.net - 如何更改数据或将数据添加到数据重复器并使其显示在 ASP.NET 中

c# - 如何使用 c#.net 读取另一个 Controller 中的 cookie?

c# - LINQ 混淆 - 数据库在应用程序关闭后不持久存在?