</div> </form> </body> </html> using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } public static void getStr() { string Str = "ddd"; HttpContext.Current.Response.Write(Str); } }
<% %>嵌入代码 或者用XMLHttpRequest获取responseText返回值
你在.js文件中写的? 这种写法只能写在aspx页面上
function fn() { var x= <%=Default_.getStr()%> ; //是这样么?可是我运行以后说我缺少对象 //调用使用=类名.方法 alert(x); }
将JS作为字符串直接返回
eg:
return “<script>function FUN(){aa.value="+std+";}</script>";
比如我cs里
public static string getStr()
{ string Str="ddd";
return Str;
} js里
function fn()
{
var x=<%=getStr()%> ; //是这样么?可是我运行以后说我缺少对象
alert(x);
}
{ string Str="ddd";
return "<script>function fn(){var x="+Str+" ;alert(x);}</script>";
} 然后在Load事件里面用输出这个代码
再出发这个fn()试试
{
return "abc";
}function fn()
{
var x= "<% =GetStr() %>";
alert(x);
}楼主是PB高手啊,帮忙看看我刚发的帖子吧
http://topic.csdn.net/u/20091016/10/9dba6b0d-e97d-4057-97d1-3bf99a0b08de.html
少了引号:
var x= "<%=getStr()%>" ;
alert出来的值是
<% =GetStr() %>
原样出来
alert出来的就是
<% =getStr() %>
并没有把我要的字符串得到
我从4年前就开始不用pb了,转.net和java了,pb很多都忘了,帮不到你,不好意思
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<script language="javascript" type="text/javascript">
function fn()
{
var x= "<% =GetStr() %>";
alert(x);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<script type="text/javascript" language="javascript">
fn();
</script>
</div>
</form>
</body>
</html>后台代码
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ } public static string GetStr()
{
return "abc";
}
}
应该没有问题的。
我用得mvc架构,没有load页面的
alert出来的就是<% =GetStr() %>我怀疑是不是因为mvc的原因不许这么传
我开发环境是.net +mvc+ext
好多东西处理得都和原来.net处理方法不一样,麻烦得要死,好烦
<head runat="server">
<title>无标题页</title>
<script type ="text/javascript" >
function fn()
{
var x='<%getStr();%>';
alert(x);
}
function window.onload()
{
fn();
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ } public static void getStr()
{
string Str = "ddd";
HttpContext.Current.Response.Write(Str);
}
}
或者用XMLHttpRequest获取responseText返回值
你在.js文件中写的?
这种写法只能写在aspx页面上
{
var x= <%=Default_.getStr()%> ; //是这样么?可是我运行以后说我缺少对象
//调用使用=类名.方法
alert(x);
}
2.web.config中添加代码:
<httpHandlers>
<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro"/>
</httpHandlers>
3.在你的页面的Page_Load方法中添加代码:
AjaxPro.Utility.RegisterTypeForAjax(typeof(Test));//Test是所在类的类名
4.在Test中想调用的方法前加代码:
[Ajax.AjaxMethod]
5.这样就能在前台JS中调用该方法了:
命名空间名.类名.方法名
{
var vstr=' <%=getStr() %>';
alert(vstr);
}
这个Vstr 就是返回的值
我开发环境是.net mvc+ext
我所有的界面都是自js文件里,所以没有load事件,我aspx的内容就是类似下面的内容
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %><asp:Content ID="Content1" ContentPlaceHolderID="HeadContextPlaceHolder" runat="server"> <script src="../../Content/Ext/ext-all.js" type="text/javascript"></script>
<script src="../../js/Distribute.sms.js" type="text/javascript"></script>
</asp:Content><asp:Content ID="Content2" ContentPlaceHolderID="MainContentPlaceHolder" runat="server">
</asp:Content>所有的界面内容以及和后台的交互都在js文件里即Distribute.sms.js这个文件里,里面都是ext的内容。
cs:
public string str = ""//全局公开变量
str ="JS";//这个随便赋值JS:
var JJ = <%=str%>测试成功
js里的代码:
function fn()
{
//获取数据
var Recordstr = Ext.data.Record.create([
{name: 'STR'},
...
]);
store = new Ext.data.Store({
proxy:new Ext.data.HttpProxy({cs中你构造的方法名}),
reader: new Ext.data.JsonReader({
totalProperty: 'TotalRecord',
root: 'Data'
},Recordstr)
,
listeners:{
"load":function(){
var getstr = storestr.getAt(0);
var issim=getstr.get('STR');//这个就是你要获取的值了
} }});
store.load();
}
fn();cs里的代码
public void GetStr()
{ string output = "[{\"STR\":\"abc\"}]";
output = "{\"TotalRecord\":1" + ",\"Data\":" + output + "}";
Response.Write(output); }这样就可以了