使用AJAX JQuery和ASP.Net以及母版页提交表单
我用lucene.net写了一个搜索程序。search方法返回一个字符串,该字符串包含带有搜索结果的html表。这部分工作正常,但我希望能够在不重新加载整个页面的情况下提交搜索。。。所以我搜索并发现这可以通过AJAX实现。不管什么原因,我都不能让它工作 我没有犯错误。返回了“Search.aspx”的内容,但似乎Submit方法从未执行过 Search.aspx使用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
<%@ 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"/>
另见以下类似问题:
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"/>
另见以下类似问题:
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;
}