C#代码:这就是ASP.NET AJAX脚本的工作方式吗

C# Code: Is this how ASP.NET AJAX scripts work?

本文关键字:脚本 AJAX 工作 方式吗 NET ASP 代码      更新时间:2023-09-26

我正在学习C#&ASP.NET制作网站。我正试图通过AJAX&只要取回一些HTML即可。

所以我访问了脚本http://www.mywebsite.com/test.aspx?i=199&它返回的只是:

<p>You queried: 199</p>

ASP.NET是否允许我传递CGI变量(i=199),或者我应该使用不同的方法

这是在ASP.NET网站中使用脚本的正确方式吗:

test.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test.aspx.cs" Inherits="WebApplication1.test" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<div id="testDiv" runat="server"></div>
<!-- Must I have the html, head & body elements or can I just return a div? -->

test.aspx。cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication1
{
    public partial class test : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            int index = url.Split("i=").Last(); // this causes an error: split has some invalid arguments
            testDiv.InnerHtml = string.Format("<p>You Queried: {0}", index);
        }
    }
}

我使用该脚本的方式是在主页上有一个按钮,当点击该按钮时,会向test.aspx&返回p HTML元素/text:

function getData( n )
{
     $.ajax({
      type: "POST",
      url: "test.aspx",
      data: "i="+n
      }).done(function( msg ) {
           $("textarea:first").html(msg) );
       });
}
<button onclick="getData(199)"/>

这不是asp.net特有的。

您需要查看请求对象,特别是查询字符串集合。这些概念在许多web服务器端语言/框架中是通用的。根据个人经验,我在经典的asp、asp.net和php中使用过它。

从查询字符串中获取值:

string val = Request.QueryString["i"];
  1. 这里不需要html、head和body元素。它们都是由ASP.NET 自动生成的

  2. 您可以使用Request.QueryString("i")。您不需要手动分析Url。

  3. 到目前为止还不错,但我不理解<button onclick="getData(199)"/>

这个代码写在哪里?ASP.NET服务器端控件onclick方法将需要C#实现。如果要定义客户端脚本,请使用onclientclick

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.onclick.aspx

您可以让页面返回HTML、JSON或XML,或者只是一个字符串-这取决于您
有关详细信息,请参阅此处的讨论:http://www.quirksmode.org/blog/archives/2005/12/the_ajax_respon.html

页面接收请求并可以使用它的post或get变量。