在第一页加载时执行C#代码

在第一页加载时执行C#代码,c#,javascript,C#,Javascript,我在SomeClass类中有一个公共静态方法stringsomemethod(stringmessage),它获取一个字符串作为输入,并返回如下内容 <div>message</div> <script language="javascript">var string = <% $SomeClass.SomeMethod('asdada');></script> 消息 当然这是过于简单化了,但想法就是这样。现在我想做一些类似的事情

我在
SomeClass
类中有一个公共静态方法
stringsomemethod(stringmessage)
,它获取一个字符串作为输入,并返回如下内容

<div>message</div>
<script language="javascript">var string = <% $SomeClass.SomeMethod('asdada');></script>
消息
当然这是过于简单化了,但想法就是这样。现在我想做一些类似的事情

<div>message</div>
<script language="javascript">var string = <% $SomeClass.SomeMethod('asdada');></script>
var字符串=

第一次加载页面时,我真的不知道如何才能加载。这就给了我一个JavaScript中的“预期对象”错误。有人能帮我解决这个问题吗?

如果你想让服务器端标签输出一些东西,你应该使用:

 <%: yourCode %>

您的代码将调用该方法,但不会将输出发送到页面:

 <script>var string=<% yourMethodCall() %></script>
 /* Result = */
 <script>var string=</script>
 /* ASP.Net code is translated to this serverside code: */
 Response.Write("<script>var string=");
 yourMethodCall();
 Response.Write("</script>");

 <script>var string=<%: yourMethodCall() %></script>
 /*                   ^ */
 /* Result = */
 <script>var string=outputOfYourMethod</script>
 /* ASP.Net code is translated to this serverside code */
 Response.Write("<script>var string=");
 Response.Write(HtmlEncode(yourMethodCall()));
 Response.Write("</script>");
var字符串=
/*结果=*/
变量字符串=
/*ASP.Net代码被转换为以下服务器端代码:*/
Write(“var string=”);
yourMethodCall();
回答。写(“”);
变量字符串=
/*                   ^ */
/*结果=*/
var string=outputOurMethod
/*ASP.Net代码被转换为此服务器端代码*/
Write(“var string=”);
Write(HtmlEncode(yourMethodCall());
回答。写(“”);

而且,如果这是一个服务器端类,为什么要包含
$
符号?

您可以将动态创建/注册客户端脚本的方法放在页面加载中,并检查页面是否在页面加载中回发,如果不是,运行注册脚本代码。

您需要用引号将其括起来,并用正确的转义序列替换双引号:

var string = "<%=SomeClass.SomeMethod("asdada").Replace("\"", "\\\"")%>";
var string=”“;

您是否尝试了$(Document).ready(函数{var string=$someclass.somemethod();});关注点分离表示这是不好的做法。