我们正在编写一个搜索应用程序,将搜索条件保存到会话状态,并在asp.net更新面板内执行搜索.有时,当我们连续执行多次搜索时,第二次或第三次搜索有时会返回第一组搜索条件的结果.
示例:我们的第一次搜索我们查看"John Smith" - >显示John Smith结果.第二次搜索我们查看"Bob Jones" - >显示John Smith结果.
我正如我所说的那样保存会话状态中的所有搜索条件,并从ajax请求中的会话状态读取它以格式化数据库查询.当我们在VS中放置断点时,一切都表现正常,但没有它们我们就会得到原始搜索条件和结果.
我的猜测是因为它们被保存在会话中,ajax请求以某种方式获得自己的会话并将条件保存到该会话,然后每次从该会话中检索条件,但是非异步的东西能够看到标准何时被修改并相应地将更改保存到状态,但由于它们来自两个不同的会话,因此保存和读取的内容存在差异.
编辑:::详细说明,有一个建议是将搜索条件附加到查询字符串,这通常是一种良好的做法,我同意它应该如何,但遵循我们的要求我不认为它是可行的.他们想要它,所以用户填写输入控件命中搜索,没有页面重新加载,他们唯一看到的是页面上的进度指示器,他们仍然能够导航和使用当前页面上的其他功能.如果我要向查询字符串添加条件,我将不得不执行另一个请求导致整个页面加载,这取决于搜索条件可能需要很长时间.这就是为什么我们使用ajax调用来执行搜索以及为什么我们不会导致另一个完整页面请求.....我希望这可以澄清情况.
我需要一个ac#asp.net项目的建议.我的客户希望通过带有主/详细结构的gridview对象查看一些报告.
主网格视图将由所有主数据填满,每行在第一个单元格上将有一个+图标(或按钮).当用户单击此图标时,应在具有折叠操作的主行下看到该主行的所有详细信息数据.
我可以处理数据库进程但我无法弄清楚崩溃的部分.如何在gridview对象的特定行下面添加一些额外的行?
提前致谢..
我正在构建一个asp.net应用程序,我应该使用哪种技术来获得AJAX功能?为什么?到目前为止,我只需要在网格视图中使用"确认"按钮,但可能需要更多功能.我可以同时使用两个,对吗?谢谢.
我在我的页面的代码隐藏文件中创建了一个WebMethod,如下所示:
[System.Web.Services.WebMethod()]
public static string Test()
{
return "TEST";
}
Run Code Online (Sandbox Code Playgroud)
我创建了以下HTML页面来测试它:
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"/></script>
<script type="text/javascript">
function test() {
$.ajax({
type: "POST",
url: "http://localhost/TestApp/TestPage.aspx/Test",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "text",
success: function(msg) {
alert(msg.d);
}
});
}
</script>
</head>
<body>
<button onclick="test();">Click Me</button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
当我单击按钮时,AJAX会触发,但不会返回任何内容.当我调试我的代码时,该方法Test()甚至不会被调用.有任何想法吗?
症状:当我发出Web服务请求时(从使用.ajax的JQuery到ASP.NET .asmx文件),如果是使用GET而不是POST,则.asmx文件始终返回XML而不是JSON.如果我将回拨转回帖子,它会像JSON一样响应.
目标:如何使用HTTP GET获取JSON而不是XML?
我已经有了相当多的谷歌搜索,这不是通常的嫌疑人,如缺少ScriptService或没有在web.config中注册处理程序.它的行为就像脚本处理程序工厂只处理帖子?请帮助我指出正确的方向!
服务器代码:
namespace mynamespace
{
/// <summary>
/// Summary description for ServiceAddresses
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
public class MyService : System.Web.Services.WebService
{
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true)]
public string HelloWorld()
{
return "Hello World at " + DateTime.Now.ToLongTimeString();
}
}
}
Run Code Online (Sandbox Code Playgroud)
客户代码:
function testhelloworld(postorget) {
var webMethod = '/servicedir/MyService.asmx/HelloWorld';
$.ajax({
type: ('GET'===postorget)?'GET':'POST',
url: webMethod,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
data: "{}",
success: function(msg) {
$('#info').text(msg.d);
},
error: function(xhr, …Run Code Online (Sandbox Code Playgroud) 我正在试验母版页,我希望在我的网页应用程序的每个页面上都可以使用AjaxControlToolkit,所以我把它放在我母版页的头部.
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajax" %>
Run Code Online (Sandbox Code Playgroud)
这引发了一个错误:未知的服务器标签'ajax:Accordion'.
如果我将它放在内容页面上,它可以正常工作.我在这里错过了什么吗?
我在用户控件的页面关联js文件的异步回发之后在更新面板中放置了一个用户控件,这个用户控件没有工作,所以有任何方法从updatepanel中排除控件另一个单词我不想发布那个用户控件.
<asp:UpdatePanel ID="upPnlAnswerList" runat="server">
<ContentTemplate>
// another code that required to placed inside updatepanel
<div id="miancontainer" class="containerr"
<klmsuc:Share ID="shareUserControl" runat="server" />
// another code that required to placed inside updatepanel
</div>
Run Code Online (Sandbox Code Playgroud) 我正在玩一些基于MvcMusicStore示例的商店,并且在使用MVC3 Ajax.ActionLink/Ajax.RouteLink助手时遇到了一些问题.问题是它根本不生成Ajax请求(Request.IsAjaxRequest()== false).我使用Ajax.BeginForm/Ajax.BeginRouteForm生成的表单虽然很好用.
配置:
<appSettings>
<add key="ClientValidationEnabled"
value="true"/>
<add key="UnobtrusiveJavaScriptEnabled"
value="true"/>
</appSettings>
Run Code Online (Sandbox Code Playgroud)
脚本:
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
链接:
@Ajax.ActionLink("show cart", "Show", "Cart", new AjaxOptions() { OnSuccess = "handleSuccess", HttpMethod = "Get", OnFailure = "handleFailure" })
Run Code Online (Sandbox Code Playgroud)
生成HTML:
<a data-ajax="true" data-ajax-failure="handleFailure" data-ajax-method="Get" data-ajax-success="handleSuccess" href="/Cart/Show">show cart</a>
Run Code Online (Sandbox Code Playgroud)
如上所述,这很好用:
@using (Ajax.BeginForm(
"Show",
new { controller = "Cart" },
new AjaxOptions
{
OnSuccess = "handleSuccess",
OnFailure = "handleFailure"
}))
{
<input type="submit" class="button" />
}
Run Code Online (Sandbox Code Playgroud)
该动作如下所示:
[Authorize]
public …Run Code Online (Sandbox Code Playgroud) asp.net-mvc asp.net-ajax unobtrusive-javascript actionlink asp.net-mvc-3
我最近将项目更新为DNN 6.0.1.我从6.0.1安装开始,并从那里添加了我的桌面模块.从5.6.3移动到6.0.1时出现了一个问题,在我的一些用户控件中有一些功能.在我深入了解之前,我会承认我有点不舒服.
快速概述我有一个ascx,其中包含另一个控件中的所有功能,其中包含asp向导中的其他几个控件.
(这么多嵌套控件的原因是隐藏了许可目的的功能,以及另一个模块[也许可]依赖于第一个子控件中的功能)
它就像这样父:ViewReportRisk.ascx >> Child:ReportRiskWizard.ascx >> Second-Child:Attachments.ascx(许可 - 隐藏功能)(主要功能)(支持功能的控件)
向导(在子控件中)位于Telerik RadMultiPage内.我遇到麻烦的控件(第二个子控件)包含一个包含在asp更新面板中的RadUploader.
当我单击向导中的"下一步"以使用RadUploader查看控件时,我收到此错误:
Sys.InvalidOperationException: Sys.InvalidOperationException: Could not find UpdatePanel with ID 'dnn_ctr445_ViewReportIssue_wzAddRisk_AttachmentsAddTemp_UpdatePanel1'. If it is being updated dynamically then it must be inside another UpdatePanel.' when calling method: [nsIDOMEventListener::handleEvent]
Run Code Online (Sandbox Code Playgroud)
Id很好.我没有动态创建控件,当我删除更新面板时,控件出现,但上传功能丢失.
控件的简要概述(缩写):
ViewReportIssue.ascx
<%@ Control Language="C#" Inherits="NWDS.Modules.ReportIssue.ViewReportIssue" AutoEventWireup="true"
CodeBehind="ViewReportIssue.ascx.cs" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<%@ Register src="ReportIssueWizard.ascx" tagname="ReportIssueWizard" tagprefix="uc2" %>
<%@ Register src="../Utils/LicensingInfo.ascx" tagname="LicensingInfo" tagprefix="uc1" %>
<uc1:LicensingInfo ID="LicensingInfo1" runat="server" />
<asp:Panel runat="server" ID="pnlContainer">
<uc2:ReportIssueWizard ID="ReportIssueWizard1" runat="server" />
</asp:Panel> …Run Code Online (Sandbox Code Playgroud) 我正在为几个用户开发Asp.Net MVC 3/knockout.js网站,他们可以保存有关他们网站的信息.这是该模型的简单版本
class{
string Id
string Name
string Url
string Description
}
Run Code Online (Sandbox Code Playgroud)
我想构建一个响应迅速的UI,以便所有加载保存等都将通过Ajax完成.
所以场景是当用户将som网站添加到他的列表并点击保存时,json字符串被发布到控制器中的Action方法.
一切正常.
问题是:
如何确保用户没有篡改id并实际保存有关其他用户网站的信息?
我当然是隐藏的,但任何具有一些网络知识的邪恶的人都可以轻易地改变身份.
asp.net-ajax ×10
ajax ×4
asp.net ×4
jquery ×3
c# ×2
actionlink ×1
ajax.net ×1
asp.net-mvc ×1
dotnetnuke ×1
get ×1
json ×1
master-pages ×1
post ×1
security ×1
session ×1
webmethod ×1