C# 我不是在IT职业领域,我只是在修修补补和学习。我稍微弄乱了Web API,但还没有达到可以利用它们的程度。我相信你可以告诉我,我只是在学习语法在这一点上,所以我感谢反馈。我一定会查看你发布的链接。我致力于维护一个基于aspx WebForms的传统网站。它

C# 我不是在IT职业领域,我只是在修修补补和学习。我稍微弄乱了Web API,但还没有达到可以利用它们的程度。我相信你可以告诉我,我只是在学习语法在这一点上,所以我感谢反馈。我一定会查看你发布的链接。我致力于维护一个基于aspx WebForms的传统网站。它,c#,jquery,asp.net,ajax,visual-studio,C#,Jquery,Asp.net,Ajax,Visual Studio,我不是在IT职业领域,我只是在修修补补和学习。我稍微弄乱了Web API,但还没有达到可以利用它们的程度。我相信你可以告诉我,我只是在学习语法在这一点上,所以我感谢反馈。我一定会查看你发布的链接。我致力于维护一个基于aspx WebForms的传统网站。它同时使用ashx和WebMethods。我知道这不是世界上最糟糕的事情;它使用WebMethods为Ajax调用提供服务,这些调用必然是所讨论的WebForm所特有的,而ashx则用于一般化调用。这给我带来的麻烦远少于(例如)页面加载,加载运行


我不是在IT职业领域,我只是在修修补补和学习。我稍微弄乱了Web API,但还没有达到可以利用它们的程度。我相信你可以告诉我,我只是在学习语法在这一点上,所以我感谢反馈。我一定会查看你发布的链接。我致力于维护一个基于aspx WebForms的传统网站。它同时使用ashx和WebMethods。我知道这不是世界上最糟糕的事情;它使用WebMethods为Ajax调用提供服务,这些调用必然是所讨论的WebForm所特有的,而ashx则用于一般化调用。这给我带来的麻烦远少于(例如)页面加载,加载运行到数千行代码的事件。因此,我不太教条。@JonathanWillcock我有点不同意我是非常教条的/如果你认为我是教条的,因为我建议不要在Web表单代码背后对Web方法进行客户端调用,这很公平。我在某种程度上是为了让OP保持简单,因为OP正在学习,而不是试图用不同的可接受模式来压倒一切。@JonathanWillcock我通常不同意你使用Web方法。确保您的模式不是问题,并且不会妨碍您的代码。但你违反了单一责任原则,没有真正的附加值。代码隐藏服务于Web表单的启动和重新呈现逻辑,即故事的结尾。创建一个与Web表单同名或类似的.ashx处理程序,并将其放在与Web表单相同的文件夹中,以便为Web表单的客户端呈现提供AJAX调用。Web方法提供紧密耦合的代码,这些代码不能在我认为只有need@Brian奥格登也许我没说清楚。这不是我的代码。这是我保留的遗产。对我来说,方法的一致性至关重要。我不介意我的前任的约定,因为它们是一致的:1-1 WebMethod在同一个文件中;多个1个独立的ashx。对我来说,保持这一点的关键是,我通常知道在哪里可以找到一些东西,而这对我来说是最重要的,因为这个网站有c。仅aspx页面就有400页,不包括库例程、ashx等。感谢代码,我还没有让它正常工作(即使在修复Brian指出的错误链接之后),但我相信它在后端。关于动态与按ID分配,您提出了一个很好的观点。
var uri = 'http://localhost:60970/ItemProc.aspxproducts';

    $(document).ready(function () {
        // Send an AJAX request
        $.getJSON(uri)
            .done(function (data) {
                // On success, 'data' contains a list of products.
                $.each(data, function (key, item) {
                    // Add a list item for the product.
                    $('<option>', { text: item }).appendTo($('#test'));
                });
            });
    });
<h2>All Products</h2>
<select id="test" />
protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            String outstr = "";
            outstr += "1";
            outstr += "2";
            outstr += "3";
            Response.Write(outstr);
        }
        catch (Exception ex)
        {
            Response.Write(ex.Message);
        }
    }
 }
 var uri = 'http://localhost:60970/ItemProc.aspxproducts';

$(document).ready(function () {
    // Send an AJAX request
    $.getJSON(uri)
        .done(function (data) {
            // On success, 'data' contains a list of products.
            $.each(data, function (key, item) {
                // Add a list item for the product.
                 var opt ='';
                  for(var i=0;i<item.length;i++) // you can use length of items
                   {
                    opt +='<option>'+ item.text;
                    opt +='</option';
                   }    
                   $('#test').append(opt);

            });
        });
});
if(!IsPostBack) {
//init some data from SQL and bind to a WebForms DataGrid or something like that for example
}