cs中我构建了个方法
     public static string getStr()  
        { string Str="ddd";
            return Str;
        }
现在我要在js文件中去接收这个字符串,我要怎么接收呢?

解决方案 »

  1.   

    在需要的地方加入代码<%# 方法名%>
      

  2.   

    Str  页面加个 隐藏域,,然后再js 里面用 getelementbyid  获取隐藏域就可以了。
      

  3.   

    你return 的时候
    将JS作为字符串直接返回
    eg:
    return “<script>function FUN(){aa.value="+std+";}</script>";
      

  4.   

    还是不大清楚
    比如我cs里
     public static string getStr()  
            { string Str="ddd"; 
                return Str; 
            } js里
    function fn()
    {
    var x=<%=getStr()%> ;    //是这样么?可是我运行以后说我缺少对象 
    alert(x);
    }
      

  5.   

    public static string getStr()  
            { string Str="ddd"; 
                return "<script>function fn(){var x="+Str+" ;alert(x);}</script>"; 
            } 然后在Load事件里面用输出这个代码
    再出发这个fn()试试
      

  6.   

    public static string GetStr()
    {
        return "abc";
    }function fn() 

         var x= "<% =GetStr() %>"; 
         alert(x); 
    }楼主是PB高手啊,帮忙看看我刚发的帖子吧
    http://topic.csdn.net/u/20091016/10/9dba6b0d-e97d-4057-97d1-3bf99a0b08de.html
      

  7.   


    少了引号:
    var x= "<%=getStr()%>" ; 
      

  8.   


    alert出来的值是
    <% =GetStr() %>
    原样出来
      

  9.   


    alert出来的就是
    <% =getStr() %>
    并没有把我要的字符串得到
      

  10.   


    我从4年前就开始不用pb了,转.net和java了,pb很多都忘了,帮不到你,不好意思
      

  11.   

    创建一个aspx页面
    <%@ 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";
        }
    }
    应该没有问题的。
      

  12.   


    我用得mvc架构,没有load页面的
      

  13.   

    确实是原样输出
    alert出来的就是<% =GetStr() %>我怀疑是不是因为mvc的原因不许这么传
    我开发环境是.net +mvc+ext
    好多东西处理得都和原来.net处理方法不一样,麻烦得要死,好烦
      

  14.   

    呵呵,我就不用MVC, 其实MS的前后台已经分的挺清楚了,把不同的内容放到不同的包不同的名字空间下就OK了。 玩抽象玩深度,客户也看不见,老板也不涨工资,没用。咋快咋来。
      

  15.   

    <%@ 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 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);
        }
    }
      

  16.   

    <% %>嵌入代码
    或者用XMLHttpRequest获取responseText返回值
      

  17.   


    你在.js文件中写的?
    这种写法只能写在aspx页面上
      

  18.   

    function fn()
    {
    var x= <%=Default_.getStr()%> ;    //是这样么?可是我运行以后说我缺少对象
    //调用使用=类名.方法
    alert(x);
    }
      

  19.   

    1.引用AjaxPro.dll(1.1)/ajaxpro.2.dll(2.0)
    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中调用该方法了:
    命名空间名.类名.方法名
      

  20.   

    function Show() 

    var vstr=' <%=getStr() %>';    
    alert(vstr); 

    这个Vstr 就是返回的值
      

  21.   

    就用这个,或者用隐藏域,或者用<%=fun%>
      

  22.   


    我开发环境是.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的内容。
      

  23.   

    在页面上写个隐藏的服务器控件,.CS里可以直接赋值,页面上JS通过它的客户端ID来获取它的Value
      

  24.   

    都是超人 我也来凑个热闹
    cs:
    public string str = ""//全局公开变量
    str ="JS";//这个随便赋值JS:
    var JJ = <%=str%>测试成功
      

  25.   

    楼主用得mvc和ext比较麻烦,可以考虑用ext的store在js里接收数据
    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);        }这样就可以了