我不知道是否有可能,我尝试了很多方法,但似乎没有什么工作在我正在进行的项目中。
这是交易:我有一个ASPX页面需要在单击按钮时调用Web服务。我无法使用代码和页面方法,因为我的页面无法继承
System.Web.UI.Page
我工作中的惯例并没有让我们使用代码。
我尝试使用Ajax(异步和同步)方法与“XMLHttpRequest”调用“.cs”类。在我的独立它工作得很好但是当我将它集成到项目中时它不起作用(Iframe在主页内的Iframe里面的iframe)。
我不能使用外部库(Jquery,...)之类的东西。我想知道如果在我正在处理的ASPX页面内,我可以用其他方式调用我的class.cs,并尝试调用我的代码。
我有:
<input type="button" onclick="callSomeJSfunction()" value="testC#" />
我的JavaScript做了一些处理(在没有所有DOM组件的情况下获取我需要的文本,并且只保留文本
)然后应该通过调用Web服务来调用服务器部分(由于跨域问题,我无法从JS调用Web服务)。
我的class.cs调用Web服务是:
namespace testProlexis
{
public class prolexisWSCorrector
{
public static string callProlexis(string textToCorrect)
{
if (string.IsNullOrEmpty(textToCorrect))
{
throw new Exception("pas de texte à corriger pour Prolexis");
}
prolexisWebServiceImpl.ProLexisService test = new prolexisWebServiceImpl.ProLexisService();
prolexisWebServiceImpl.AnalyzerInput inPut = new prolexisWebServiceImpl.AnalyzerInput();
prolexisWebServiceImpl.AnalyzerOutput outPut = new prolexisWebServiceImpl.AnalyzerOutput();
inPut.text = textToCorrect;
String info ="try5";
outPut = test.analyze(inPut, working);
int tytytyty = outPut.errors.Count();
return textToCorrect;
}
我不知道怎么做,我是ASP.NET的初学者(我以前在JEE工作)。所以,如果有人有想法或某些教程,我可以帮助我,我很乐意接受它。
感谢您抽出时间帮助我。
答案 0 :(得分:0)
如果您在aspx页面中尝试使用C#而没有代码(不推荐),您只需将其添加到aspx页面的脚本标记中即可。
<script language="C#" type="text/C#" runat="server">
public void DoStuff(object sender, EventArgs e)
{
var proxy = new prolexisWSCorrector();
}
</script>
<asp:Button ID="" runat="server" Click="DoStuff" />
或者
<input type="submit" runat="server" onClick="DoStuff" />
答案 1 :(得分:0)
在您的Aspx表单中,javascript函数如下,
function callSomeJSfunction() {
jQuery.ajax({
type: "POST",
url: "YourForm.aspx/YourPublicStaticWebMethod",
data: "{'ID': '" + txtID.value+ "','Value': '" + txtYear.value '}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
/*Do Success*/
},
Error:function(er){
/*Do Error*/
}
});
}
在你的Aspx表格中,代码背后,
[System.Web.Services.WebMethod]
public static Function YourPublicStaticWebMethod(int id,string year)
{
//Code Here
}