在外部Javascript文件中进行内联C#调用

时间:2012-08-17 00:25:22

标签: c# javascript asp.net

随着我的javascript越来越大,我想清理我的ASPX文件。

问题是很多我的javascript涉及很多内联C#调用。即:

'<%=C# method call)%>'

但是当它隐藏在.js文件中时,这似乎不起作用。

有没有解决方法,所以我可以将我的javascript分成js文件?

2 个答案:

答案 0 :(得分:2)

当然你不能从.js文件中调用C#。 C#代码在服务器上执行,而不是在客户端上执行。您的.js文件未在服务器上解析。

没有什么可以阻止您将实际的JavaScript放入.js文件中,而不是像服务器端C#代码动态发出的JavaScript。

如果您有很多生成JavaScript的C#代码,您仍然可以使用部分视图来组织代码(这是MVC术语,但我确信标准ASP.Net有类似的东西)。

答案 1 :(得分:0)

您可以使用WebMethods并通过Ajax调用它们。

[WebMethod]
public static int SomeMethod()
{
    ...
}

然后用Ajax调用它。 (我在这个例子中使用jQuery。)

$.ajax({
    type:        "POST"  
    url:         "/yourwebpage.aspx/SomeMethod"
    data:        "{}"
    contentType: "application/json; charset=utf-8",
    dataType:    "json",
    success:     function(data) {
                     // do something with the return value
                 }
});