我使用jQuery的ajax调用一个ASP.NET页面作为我的ajax服务器页面来保存我发送到查询string中的数据。 在ASP.NET页面中,当我正在阅读querystring我得到这个错误: A potentially dangerous Request.QueryString value was detected from the client… 我在页面中设置了ValidateRequest="false" 。 不想为所有页面设置它。 所以在页面级别而不是configuration级别: var content = "<h3>Sample header</h3><p>sample para</p>" content = encodeURIComponent(content); var url = "../Lib/ajaxhandler.aspx?mode=savecontent&page=home<xt=" + content; $.post(url, function (data) { //check return value and do something }); 并在我的asp.net页面: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ajaxhandler.aspx.cs" ValidateRequest="false" Inherits="MyProject.Lib.ajaxhandler" %> 但是,当我发送纯文本,而不是HTML标记,它工作正常。
我在实施现有Sitefinity网站内部的新的Messenger Connectfunction时出现问题,无法使用实时IDlogin客户端。 也就是说,当我使用下面的代码来实现客户端function时: <head runat="server"> <script type="text/javascript" src="http://js.live.net/4.1/loader.js"></script> </head> <body> <form runat="server" id="form1"> <asp:ScriptManager ID="ScriptManager1" runat="server"/> <wl:app client-id="<%= ConfigurationManager.AppSettings["wl_wrap_client_id"] %>" scope="WL_Profiles.View" callback-url="<%= ConfigurationManager.AppSettings["wl_wrap_client_callback"] %>?wl_session_id=<%=SessionId %>" channel-url="/channel.htm"> </wl:app> …我在Firebug中发现了三个错误,我无法正确识别: Sys.ArgumentTypeException:types'Sys._Application'的对象不能转换为'Sys.IDisposable'types。 参数名称:对象 (在ScriptResource.axd?d = ….行4993) Sys.Application._doInitialize不是一个函数 (在MicrosoftAjaxBase.js第1行) Sys.InvalidOperationException:脚本“MicrosoftAjaxGlobalization.js”已被多次引用。 如果显式引用Microsoft AJAX脚本,请将ScriptManager的MicrosoftAjaxMode属性设置为Explicit。 (在ScriptResource.axd?d = ….行984) 只有当我包含来自js.live.net的loader.js脚本时才会触发错误。 编辑 :似乎错误不一定以此顺序触发。 例如,刷新页面似乎会改变这些错误和/或引入其他错误,例如,在ScriptResource.axd?…的Sys.ParameterCountException 。
我有一个UpdatePanel里面的GridView。 在模板字段中是用于标记项目的button。 在function上,这工作正常,但button总是触发一个完整的页面回发,而不是部分回发。 我如何获得button来触发部分回发? <asp:ScriptManager ID="ContentScriptManager" runat="server" /> <asp:UpdatePanel ID="ContentUpdatePanel" runat="server" ChildrenAsTriggers="true"> <ContentTemplate> <asp:GridView ID="OrderGrid" runat="server" AllowPaging="false" AllowSorting="false" AutoGenerateColumns="false"> <Columns> <asp:TemplateField HeaderText=""> <ItemTemplate> <asp:LinkButton ID="MarkAsCompleteButton" runat="server" Text="MarkAsComplete" CommandName="MarkAsComplete" CommandArgument='<%# Eval("Id") %>' /> </ItemTemplate> </asp:TemplateField> <asp:BoundField DataField="Name" HeaderText="Name" /> <asp:BoundField DataField="LoadDate" HeaderText="Load Date" /> <asp:BoundField DataField="EmployeeCutOffDate" HeaderText="Cut Off Date" /> <asp:BoundField DataField="IsComplete" HeaderText="Is Completed" /> </Columns> […]
我有一个使用Ajax.BeginForm创build的简单表单: <% using (Ajax.BeginForm("Update", "Description", new { id = Model.Id }, new AjaxOptions { UpdateTargetId = "DescriptionDiv", HttpMethod = "post" },new {id ='AjaxForm' })) {%> Description: <%= Html.TextBox("Description", Model.Description) %><br /> <input type="submit" value="save" /> <% }%> 控制器已连线并返回更新DescriptionDiv的部分视图。 这一切工作整齐。 现在我希望能够提交这个表单,而不必提交提交button(通过链接或图像上的clik或其他)。 不幸的是,这个小小的jQuery代码片段并没有完成这项工作: $('form#AjaxForm').submit(); 它确实提交了表单,但是(我想不出意外)常规的post-back而不是Ajax的。 为了简单起见,上面的jQuery是这样连接起来的: <a href="#" onclick="$('form#AjaxForm').submit(); return false;">submit</a> 表单的onsubmit使用Sys.Mvc.AsyncForm.handleSubmit(),但jQuery提交似乎绕过了这一点。 PS。 我正在寻找这种特定方法的解决scheme。 我知道如何使用正常的forms来实现,并使用AJAX + jQuery发布。 […]
我有一个UpdatePanel内的button。 该button正被用作ModalPopupExtender的OKbutton。 出于某种原因,button点击事件不会触发。 有任何想法吗? 我错过了什么吗? <asp:updatepanel id="UpdatePanel1" runat="server"> <ContentTemplate> <cc1:ModalPopupExtender ID="ModalDialog" runat="server" TargetControlID="OpenDialogLinkButton" PopupControlID="ModalDialogPanel" OkControlID="ModalOKButton" BackgroundCssClass="ModalBackground"> </cc1:ModalPopupExtender> <asp:Panel ID="ModalDialogPanel" CssClass="ModalPopup" runat="server"> … <asp:Button ID="ModalOKButton" runat="server" Text="OK" onclick="ModalOKButton_Click" /> </asp:Panel> </ContentTemplate> </asp:updatepanel>
看起来,使用WCF的本地DataContractJsonSerializer或ASP.NET的本地JavaScript序列化程序将entity framework对象序列化为JSON是不可能的。 这是由于序列化器拒绝的引用计数问题。 我也试过Json.NET ,它也没有具体的引用计数问题。 编辑: Json.NET现在可以序列化和反序列化entity framework实体 。 我的对象是entity framework对象,重载执行额外的业务function(如身份validation等),我不想装饰这些类与特定于平台的属性等,因为我想呈现一个平台无关的API 。 我实际上在http://bloggingabout.net/blogs/program.x/archive/2009/03/18/wcf-json-serialization-woes.aspx上写了个博客。 我错过了什么明显的东西?
我有一个ASP.NET网页,显示各种各样的领域,需要更新最好的特定条件下,button点击等。 我们已经实现了AJAX,使用ASP.NET更新面板来避免可见的回传。 原来只有一个领域需要这个能力……很快扩展到其他领域。 现在我的网页有多个UpdatePanel。 我想知道是否最好只将整个窗体包装在一个UpdatePanel中,或者保留单独的UpdatePanel。 什么是使用ASP.NET UpdatePanel的最佳做法?
我有一个ASP.Net / AJAX控制工具包项目,我正在努力。 80%的时间没有问题。 该页面应该运行。 如果刷新页面,它有时会显示一个JavaScript错误“Sys is undefined”。 它不会一直发生,但它是可重复的。 发生这种情况时,用户必须closures浏览器并重新打开页面。 这使我相信它可能是一个IIS设置。 另一个说明。 当我得到错误时,我查看了页面源代码。 当页面抛出错误时,下面的代码丢失了: <script src="/ScriptResource.axd?d=EAvfjPfYejDh0Z2Zq5zTR_TXqL0DgVcj_h1wz8cst6uXazNiprV1LnAGq3uL8N2vRbpXu46VsAMFGSgpfovx9_cO8tpy2so6Qm_0HXVGg_Y1&t=baeb8cc" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ if (typeof(Sys) === 'undefined') throw new Error('ASP.NET Ajax client-side framework failed to load.'); //]]> </script>
我正在寻找在ASP.NET MVC中实现modal dialog的最标准的方法。 我试图做的一个例子是,当我从我的“列表”页面中select一个项目时,我希望“细节”页面是列表上的一个popup窗口,而不是一个新的页面。 我不是在寻找黑客。 我希望它是遵循ASP.NET MVC模式的解决scheme。 我也不想跨越jQuery和ASP.NET Ajax(除了作为最佳实践出现以外,没有插件)。
如何从UpdatePanel中的button强制完整回传?