使用AJAX JQuery和ASP.Net以及母版页提交表单

使用AJAX JQuery和ASP.Net以及母版页提交表单,jquery,asp.net,ajax,forms,Jquery,Asp.net,Ajax,Forms,我用lucene.net写了一个搜索程序。search方法返回一个字符串,该字符串包含带有搜索结果的html表。这部分工作正常,但我希望能够在不重新加载整个页面的情况下提交搜索。。。所以我搜索并发现这可以通过AJAX实现。不管什么原因,我都不能让它工作 我没有犯错误。返回了“Search.aspx”的内容,但似乎Submit方法从未执行过 Search.aspx <%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" A

我用lucene.net写了一个搜索程序。search方法返回一个字符串,该字符串包含带有搜索结果的html表。这部分工作正常,但我希望能够在不重新加载整个页面的情况下提交搜索。。。所以我搜索并发现这可以通过AJAX实现。不管什么原因,我都不能让它工作

我没有犯错误。返回了“Search.aspx”的内容,但似乎Submit方法从未执行过

Search.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Search.aspx.cs" Inherits="Search" %>

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">

<script type="text/javascript">
    $(function () {    

        $(".sBM").click(function () {

            dataString = "valve"

            $.ajax({
                type: "POST",
                url: "Search.aspx/Submit",
                //data: dataString,
                data: dataString,
                contentType: "application/html; charset=utf-8",
                dataType: "html",
                success: function (msg) {
                    $("#searchResults").text(msg);
                   alert(msg);
                },
                error: function (xhr, ErrorText, thrownError) {
                    $("#searchResults").text("Error" + xhr.status);
                }

            });
            return false;
        });

    }); 

</script>

</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">

 <div class="sHead"> 

    <div id="search_form" class="sSBM">
    <form name="search" action=""> 
        <fieldset>  
            <label for="name" id="rpe_label">RPE Search</label>  
            <input type="text" name="query" value="" class="sTM" />
            <input type="submit" name="submit" class="sBM" id="submit_btn" value="" />               
      </fieldset>  
    </form>  
    </div>  

 </div>   

   <div id="searchResults" ></div>     
</asp:Content>

您必须在web.config中配置
ScriptModule
,才能调用这样的静态页面方法。如果您正在Visual Studio中使用内置的开发web服务器运行ASP.NET 3.5项目,请确保该项目位于web.config中的system.web/httpModules

<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<remove name="ScriptModule"/>
<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
另见以下类似问题:


您必须在web.config中配置
ScriptModule
,才能调用这样的静态页面方法。如果您正在Visual Studio中使用内置的开发web服务器运行ASP.NET 3.5项目,请确保该项目位于web.config中的system.web/httpModules

<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<remove name="ScriptModule"/>
<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
另见以下类似问题:


我最近在ASP.NET中使用了一个站点,我在ASP.NET项目中添加了一个Web服务,并在jQuery中使用了以下代码片段:

        var info = {};
        info.Ticket = ticket;
        info.idCategoria = $('#hidCategoria').val();

        var DTO = { 'info': info };

        $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "MyWebService.asmx/MyTargetFunction",
            data: JSON.stringify(DTO),
            dataType: "json",
            success: function (data) {
                if (data.d != null) {
                    // My Logic
                }
            },
            error: function (data) {
                alert('Error!');
            }
        });
我的Web服务的功能如下:

    [WebMethod]
public ResponseInfo CrearTicket(CreateTicketInfo info) {
    ResponseInfo i = new ResponseInfo();
    _info = info;

    try
    {
        // Logic Here
    }
    catch (Exception e)
    {
        i.ResponseCode = ContactoConstants.GENERICERROR;
        i.Message = e.Message;
    }

    return i;
}

我最近在ASP.NET中使用了一个站点,我在ASP.NET项目中添加了一个Web服务,并在jQuery中使用了以下代码段:

        var info = {};
        info.Ticket = ticket;
        info.idCategoria = $('#hidCategoria').val();

        var DTO = { 'info': info };

        $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "MyWebService.asmx/MyTargetFunction",
            data: JSON.stringify(DTO),
            dataType: "json",
            success: function (data) {
                if (data.d != null) {
                    // My Logic
                }
            },
            error: function (data) {
                alert('Error!');
            }
        });
我的Web服务的功能如下:

    [WebMethod]
public ResponseInfo CrearTicket(CreateTicketInfo info) {
    ResponseInfo i = new ResponseInfo();
    _info = info;

    try
    {
        // Logic Here
    }
    catch (Exception e)
    {
        i.ResponseCode = ContactoConstants.GENERICERROR;
        i.Message = e.Message;
    }

    return i;
}