WebForm1这个页面中的html代码如下:就三个控件
<INPUT id="uid"  type="text">
<INPUT id="pwd"   type="text">
<INPUT  type="button" value="Button" onclick="getpwd()"> 我要用AJAX,第一在web.config中添加
    <httpHandlers>
   <add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory,eAjax" />
    </httpHandlers>  第二在页面中加JS
<script language="javascript">
function getpwd()
{
     document.all.pwd.value = WebForm1.GetPwd(document.all.uid.value);
}
</script> 
第三在CS中写下如下代码:
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面 Ajax.Utility.RegisterTypeForAjax(typeof(WebForm1));
} [Ajax.AjaxMethod()]
public string GetPwd(string UID)
{
return "fdsafdsafdsa";

按理说,我现在在UID这个HTML控件中输入内容,PWD这个控件就应该显示的是fdsafdsafdsa,可显示的却是[object Object],无论你输入什么.为什么? 分不够了,不好意思!

解决方案 »

  1.   

    返回的方式利用异步的方式
    function GetPwd_CallBack(response)
    {
       document.all.pwd.value = response.value;
    }
    点击按钮的这样调用异步事件
    <script language="javascript">
    function getpwd()
    {
         WebForm1.GetPwd(document.all.uid.value,GetPwd_CallBack);
    }
    </script> 
      

  2.   

    这是什么意思???用你这个方法是可行的!但,是什么原因呢???还有就是,那个文件框会先闪一下[object Object],然后在显示的是fdsafdsafdsa,这又是为什么呢?
      

  3.   

    ajax 函数返回就是这样的方式,这就是ajax 异步的作用.
    而不是像我们普通函数一样直接对document.all.uid.value赋值.
      

  4.   

    你的文件框是不是先闪一下显示[object Object],再显示fdsafdsafdsa??
      

  5.   

    嗯,你的方法是对的,能解决问题,谢谢!另一个方法也可以<script language="javascript">
    function getpwd()
    {
         document.all.pwd.value = WebForm1.GetPwd(document.all.uid.value).value;
    }
    </script>