使用参数从JavaScript调用C#方法
本文关键字:调用 方法 JavaScript 参数 | 更新日期: 2023-09-27 18:30:11
我想用JavaScript中的参数调用一个C#方法。如果我删除方法<% showDetail(); %>
的参数s
,这是可能的
function showDetail(kurz)
{
String s = kurz.toString();
<% showDetail(s); %>;
}
C#测试方法:
public void showDetail(String s)
{
Label_Test.Text = s.ToString();
}
public void showDetail()
{
Label_Test.Text = "";
}
它在没有参数的情况下运行良好,但有了s
变量,我得到了一个编译器错误:
CS0103:名称"s"在当前上下文中不存在
我试过
showDetail(Object s){....}
以及
showDetail(String s){....}
但它不起作用。
创建一个web方法。这是从Javascript中调用c#方法的一种简单而简洁的方法。您可以使用jQueryAjax调用该方法。请参阅下面的webMethod示例。
[WebMethod]
public static string RegisterUser(string s)
{
//do your stuff
return stringResult;
}
然后使用jQueryajax调用此方法。您也可以传递参数。如以下所示
function showDetail(kurz) {
String sParam = kurz.toString();
$.ajax({
type: "POST",
url: "PageName.aspx/MethodName",
data: "{s:sParam}", // passing the parameter
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(retValue) {
// Do something with the return value from.Net method
}
});
}
使用Hidden字段传递值(使用javascript设置值)。并使用out参数调用javscript函数。。这个值u可以从隐藏字段
您可以通过使用WebMethods 来实现这一点
首先创建一个web方法。
[WebMethod]
public string MethodName(string Parameter)
{
string msg=string.Empty;
//Your Code
return msg;
}
在Java脚本调用中,它的作用是
WebService.MethodName(Parameter,onSuccess,Error) // Here Webservice is the name of your asmx file
function onSuccess(result)
{
//Your code
}
function Error()
{
alert("Error");
}
Varun Paul提供的解决方案是我使用过的解决方案,只要您更正以下错误,它就会起作用:data:"{s:sParam}",
应写成:数据:{s: sParam},
数据用于将参数传递给C#方法。希望能有所帮助。谢谢,
可以将c# application
与javascrip
t交互,使用jint.dll
进行
Jint-用于.NET 的Javascript解释器
例如
以下是java脚本函数
function reverse(my_str)
{
var sb = new jintTestApplication.Test();//jintTestApplication is the namespace name
return sb.Test1(reverse2(my_str) );
}
function reverse2(my_str)
{
var comStr="";
var result="";
var i=my_str.length;
i=i-1;
for (var x = i; x >=0; x--)
{
result= my_str.charAt(x);
comStr+=result;
}
return comStr;
}
因此,在这种情况下,您必须在javascript中创建类的对象,并且可以调用c#方法
JintEngine engine = new JintEngine();
engine.Run(ReadJavaScript());
Console.WriteLine(engine.Run("reverse('Foooooo');"));
public static string ReadJavaScript()
{
string allines = File.ReadAllText(@"[path]'test.js");
}
public void Test1(string message)
{
MessageBox.show(message);
}