标签: asp.net-ajax

系统未定义

我正在开发一个ASP.Net/AJAX控件包项目.80%的时间没有问题.页面应该运行.如果您刷新页面,它有时会显示一个javascript错误"系统未定义".

它不会一直发生,但它是可重复的.当它发生时,用户必须关闭他们的浏览器并重新打开页面.

这让我相信它可能是一个IIS设置.

另一个说明.当我收到错误时,我查看了页面源,何时没有.当页面抛出错误时,缺少以下代码:

<script src="/ScriptResource.axd?d=EAvfjPfYejDh0Z2Zq5zTR_TXqL0DgVcj_h1wz8cst6uXazNiprV1LnAGq3uL8N2vRbpXu46VsAMFGSgpfovx9_cO8tpy2so6Qm_0HXVGg_Y1&amp;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>
Run Code Online (Sandbox Code Playgroud)

javascript asp.net asp.net-ajax

61
推荐指数
8
解决办法
13万
查看次数

一个更新面板与多个更新面板

我有一个ASP.NET网页,显示需要在特定条件,按钮点击等情况下最佳更新的各种字段.我们已经实现了AJAX,使用ASP.NET Update Panel来避免可见的回发.

最初只有一个区域需要这种能力......很快就会扩展到其他领域.现在我的网页有多个UpdatePanel.

我想知道是否最好将整个表单包装在单个UpdatePanel中,或者保留单个UpdatePanels.

使用ASP.NET UpdatePanel的最佳实践是什么?

asp.net webforms asp.net-ajax

47
推荐指数
4
解决办法
4万
查看次数

将实体框架对象序列化为JSON

似乎使用WCF的本机DataContractJsonSerializer或ASP.NET的本机JavaScript序列化程序无法将Entity Framework对象序列化为JSON.这是由于序列化器拒绝的引用计数问题.我也尝试过Json.NET,它也没有专门针对引用计数问题.


编辑: Json.NET现在可以序列化和反序列化实体框架实体.


我的对象是实体框架对象,它们被重载以执行其他业务功能(例如,身份验证等),我不想用平台特定的属性等来装饰这些类,因为我想呈现一个与平台无关的API .

我实际上曾在https://blog.programx.co.uk/2009/03/18/wcf-json-serialization-woes-and-a-solution/上写过关于我所经历的各个步骤的博客.

我错过了一些明显的事吗?

wcf json entity-framework asp.net-ajax

45
推荐指数
2
解决办法
6万
查看次数

如何使用JavaScript而不是提交按钮发布ASP.NET MVC Ajax表单

我有一个简单的表单创建使用Ajax.BeginForm:

<% 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" />
<% }%>
Run Code Online (Sandbox Code Playgroud)

控制器已接线并返回更新的部分视图DescriptionDiv.这一切都很巧妙.

现在我希望能够在没有提交按钮的情况下提交此表单(通过链接或图像上的clik或其他任何内容).不幸的是,这个小jQuery片段不起作用:

$('form#AjaxForm').submit();
Run Code Online (Sandbox Code Playgroud)

它确实提交了表单,但确实(我想并不奇怪)是一个常规的回发而不是Ajax.

为简单起见,上面的jQuery是这样连接起来的:

<a href="#" onclick="$('form#AjaxForm').submit(); return false;">submit</a>
Run Code Online (Sandbox Code Playgroud)

表单的onsubmit使用的是Sys.Mvc.AsyncForm.handleSubmit(),但jQuery提交似乎绕过了这个.

PS.我正在寻找这种特殊方法的解决方案.我知道如何使用普通表单实现相同的功能并使用AJAX + jQuery发布它.我对这个特定的解决方案很感兴趣.

javascript asp.net-mvc jquery asp.net-ajax

44
推荐指数
3
解决办法
10万
查看次数

单击后禁用asp.net按钮以防止双击

我有一个ASP.NET按钮,我需要在用户单击它后禁用它以防止双击.提交完成后,必须再次启用它.谁能帮我这个?

javascript asp.net jquery asp.net-ajax

44
推荐指数
8
解决办法
10万
查看次数

ModalPopupExtender确定按钮单击事件未触发?

我在UpdatePanel中有一个Button.该按钮用作ModalPopupExtender的OK按钮.由于某种原因,按钮单击事件未触发.有任何想法吗?我错过了什么吗?

<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>
Run Code Online (Sandbox Code Playgroud)

asp.net updatepanel modalpopupextender asp.net-ajax

43
推荐指数
5
解决办法
11万
查看次数

程序集"System.Web.Extensions"中"System.Web.UI.ScriptManager"类型中的方法"get_EnableCdn"没有实现

任何人都可以解释像这样的perse错误:来自程序集'System.Web.Extensions,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'的类型'System.Web.UI.ScriptManager'中的'方法'get_EnableCdn'没有实施."

我的开发盒运行Windows 7,框架4.0和最新的Ajax工具包.站点在本地以及测试服务器上运行(win 2003,framework 4.0和最新的Ajax工具包),但在生产服务器(同样是Win 2003)上,故事是不同的.

具有讽刺意味的是,生产服务器上的网站几个月前已经升级到框架4.0,并且在我尝试通过复制已发布的网站来推送更新之前一直正常工作.那是我收到这个错误的时候.

如果只是将站点的工作副本复制到新目录中创建新的虚拟目录,我也会收到此错误.

重新安装VS2010,但没有帮助.

无论如何,这个错误消息的很多帖子是关于用户升级到4.0并收到此错误,这不是我的情况,所以我对此感到茫然,并感谢您的输入.

谢谢,

asp.net-ajax

43
推荐指数
1
解决办法
2万
查看次数

如何将jQuery $ .ajax()发布请求中的模型发送到MVC控制器方法

在使用以下代码进行自动刷新时,我假设当我发布帖子时,模型会自动发送到控制器:

$.ajax({
    url: '<%=Url.Action("ModelPage")%>',
    type: "POST",
    //data:  ??????
    success: function(result) {
        $("div#updatePane").html(result);
    },

    complete: function() {
    $('form').onsubmit({ preventDefault: function() { } });

    }
});
Run Code Online (Sandbox Code Playgroud)

每次有帖子时,我都需要增加模型中的value属性:

public ActionResult Modelpage(MyModel model)
    {                   
        model.value = model.value + 1;

        return PartialView("ModelPartialView", this.ViewData);
    }
Run Code Online (Sandbox Code Playgroud)

但是当使用jQuery AJAX请求发布页面时,模型不会传递给控制器​​.如何在AJAX请求中发送模型?

asp.net-mvc jquery asp.net-ajax

42
推荐指数
3
解决办法
15万
查看次数

从jquery post调用asp.net页面发送html标记时,从客户端检测到一个潜在危险的Request.QueryString值

我正在使用jQuery对一个ASP.NET页面进行ajax调用,该页面充当我的ajax服务器页面,用于保存我在查询字符串中发送给它的数据.在ASP.NET页面中,当我尝试读取查询字符串时,我收到此错误:

A potentially dangerous Request.QueryString value was detected from the client...
Run Code Online (Sandbox Code Playgroud)

我已经ValidateRequest="false"在我的页面中设置了 .不想为所有页面设置它.所以它在页面级别而不是配置级别:

  var content = "<h3>Sample header</h3><p>sample para</p>"
  content = encodeURIComponent(content);
  var url = "../Lib/ajaxhandler.aspx?mode=savecontent&page=home&ltxt=" + content;

     $.post(url, function (data) { 
       //check return value and do something
   });
Run Code Online (Sandbox Code Playgroud)

在我的asp.net页面中:

 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ajaxhandler.aspx.cs" ValidateRequest="false" Inherits="MyProject.Lib.ajaxhandler" %>
Run Code Online (Sandbox Code Playgroud)

但是当我发送纯文本而不是html标记时,它工作正常.

asp.net security ajax jquery asp.net-ajax

40
推荐指数
2
解决办法
7万
查看次数

由UpdatePanel内的GridView内的LinkBut​​ton触发的完整回发

我在UpdatePanel中有一个GridView.在模板字段中是我用于标记项目的按钮.在功能上,这工作正常,但按钮总是触发整页回发而不是部分回发.如何让按钮触发部分回发?

<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>
        </asp:GridView>
    </ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)

c# asp.net gridview updatepanel asp.net-ajax

38
推荐指数
3
解决办法
7万
查看次数