标签: asp.net-ajax

在ASP.NET中使用Messenger Connect客户端库时出现Javascript错误

我在现有Sitefinity站点内实现新的Messenger Connect功能时遇到问题,无法使用Live ID启用客户端登录.

也就是说,当我使用以下代码实现客户端功能时:

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

...我在Firebug中遇到三个错误,我无法正确识别:

Sys.ArgumentTypeException:"Sys._Application"类型的对象无法转换为"Sys.IDisposable"类型.参数名称:对象

(在ScriptResource.axd?d = ....第4993行)

Sys.Application._doInitialize不是一个函数

(在MicrosoftAjaxBase.js第1行)

Sys.InvalidOperationException:脚本"MicrosoftAjaxGlobalization.js"已被多次引用.如果显式引用Microsoft AJAX脚本,请将ScriptManager的MicrosoftAjaxMode属性设置为Explicit.

(在ScriptResource.axd?d = ....第984行)

仅当我loader.js从js.live.net 包含脚本时才会触发错误.

编辑:似乎错误不一定按该顺序触发.刷新页面似乎打乱这些错误和/或引入其他的,如Sys.ParameterCountExceptionScriptResource.axd?...上线1842,例如.

javascript asp.net asp.net-ajax sitefinity liveid

37
推荐指数
1
解决办法
1978
查看次数

ASP.NET MVC和Ajax,并发请求?

AJAX新手在这里!
在我的ASP.NET MVC Web应用程序中,我的AJAX请求似乎正在进行批处理或排队,我不确定.
在上一个请求完成之前,似乎没有任何请求完成.
我如何获得独立返回的请求?
我不一定希望有人给我答案,但可能有一些链接指向可能有用的好教程或资源.谢谢

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

35
推荐指数
3
解决办法
2万
查看次数

如何指定在显示ModalPopupExtender时运行的javascript

在ASP.NET AJAX ModalPopupExtender具有OnCancelScriptOnOkScript属性,但它似乎并不有一个OnShowScript属性.我想指定每次弹出窗口时运行的javascript函数.

在过去的情况下,我设置TargetControlID为一个虚拟控件并提供我自己的控件,首先执行一些JS代码,然后使用JS方法显示弹出窗口.但在这种情况下,我将显示客户端和服务器端代码的弹出窗口.

有人知道这样做的方法吗?

顺便说一下,我需要这个,因为我在模态中有一个文本框,我想制作一个TinyMCE编辑器.但是TinyMCE init脚本不适用于隐形文本框,因此我必须找到一种方法来在模式显示时运行它

javascript asp.net asp.net-ajax

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

Javascript中的线程安全性?

我有一个名为save()的函数,该函数收集页面上的所有输入,并对服务器执行AJAX调用以保存用户工作的状态.

当用户单击保存按钮时,当前调用save(),或执行一些需要我们在服务器上具有最新状态的其他操作(例如,从页面生成文档).

我正在增加每隔一段时间自动保存用户工作的能力.首先,我想阻止AutoSave和用户生成的保存同时运行.所以我们有以下代码(我正在削减大部分代码,这不是1:1,但应该足以让我们了解这个想法):

var isSaving=false;
var timeoutId;
var timeoutInterval=300000;
function save(showMsg)
{
  //Don't save if we are already saving.
  if (isSaving)
  { 
     return;
  }
  isSaving=true;
  //disables the autoSave timer so if we are saving via some other method
  //we won't kick off the timer.
  disableAutoSave();

  if (showMsg) { //show a saving popup}
  params=CollectParams();
  PerformCallBack(params,endSave,endSaveError);

}
function endSave()
{  
    isSaving=false;
    //hides popup if it's visible

    //Turns auto saving back on so we save x milliseconds after the last save.
    enableAutoSave();

} …
Run Code Online (Sandbox Code Playgroud)

javascript concurrency asp.net-ajax

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

JavaScript中的$ get和$ find有什么区别?

我是谁才刚刚开始了解客户端脚本.NET程序员,我在想,有时你使用$get('value'),并$find('value')和我发现,这些只是快捷方式document.getElementById('value'),并Sys.Application.findComponent('value')分别.

但是,我仍然不明白:JavaScript中这两个函数有什么区别?他们在调用时究竟查找/检索了什么?

提前致谢.

javascript asp.net-ajax

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

Sys.Application.add_load()与$(文档).ready()与pageLoad()的对比

我的页面有一些需要在页面加载时运行的javascript.所述javascript需要找到ServerControl的客户端组件,它与$ find()一起使用.

当然,如果我直接将代码发送到页面上,它会在页面被读取时执行,并且因为它所依赖的任何内容尚未初始化而失败.

如果我将我的代码放在pageLoad()函数中,它运行得很好,因为asp.net会自动为任何名为pageLoad()的函数连接onload处理程序.问题是我真的不喜欢pageLoad()解决方案 - 主要是因为它是一个单一的全局名称.如果我使用pageLoad()提交一些代码,我只知道其他一些程序员将要复制该方法,在某个地方不合适,我们最终会得到一个包含两个或更多不同pageLoad()函数的页面,并且结果将是一堆神秘的错误,将永远追查.

所以,我把我的代码放在一个传递给jquery的$(document).ready()的匿名函数中.这失败了,因为它在ServerControl的客户端组件存在之前运行.

所以,我把我的代码放在Sys.Application.add_load()传递给的匿名函数中.这也失败了,因为系统未定义.

所以我最终决定将我的代码放在Sys.Application.add_load()中,然后将它放在$(document).ready()调用的函数中.这样可行,但它几乎与pageLoad()一样令人心痛.

<script type="text/javascript">
    $(document).ready(function(){
        Sys.Application.add_load(function(){
            var component = $find(<clientid>);
            if (component) { <do something> }
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

必须有一种更好的方法来处理这个问题.

有任何想法吗?

asp.net-ajax

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

UpdatePanel中ListView中的LinkBut​​ton导致完全回发

我在UpdatePanel的ListView中有一个LinkBut​​ton.我希望按钮(好吧,其中任何一个)导致部分回发,但它们会导致整页回发.

<asp:UpdatePanel ID="upOutcomes" UpdateMode="Conditional" runat="server">
  <ContentTemplate>
      <asp:ListView ID="lvTargets" runat="server" onitemdatabound="lvTargets_ItemDataBound">
        <ItemTemplate>
          <asp:LinkButton ID="lnkAddTarget" CssClass="lo" Text='<%# Eval("Title") + " <b>" + Eval("Level") + Eval("SubLevel") + "</b>" %>' runat="server"></asp:LinkButton>
        </ItemTemplate>
      </asp:ListView>
  </ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)

我在stackoverflow上发现了另一篇帖子,建议添加:

protected void lvTargets_ItemDataBound(object sender, ListViewItemEventArgs e) {
  var lb = e.Item.FindControl("lnkAddTarget") as LinkButton;
  tsm.RegisterAsyncPostBackControl(lb);  // ToolkitScriptManager
}
Run Code Online (Sandbox Code Playgroud)

它没有什么区别......

还有一些其他类似的帖子,但我找不到解决方案!有任何想法吗?

c# asp.net ajax listview asp.net-ajax

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

Ajax请求使用POST使用MVC和$ .ajax调用返回HTTP错误500?

我已经看过几个关于这个的线程,我已经尝试了所有的答案(ASP.NET MVC JsonResult返回500)

我的ajax请求正在重新发送500内部错误.如果我调试我甚至从未接受过我的行动.

这是我的ajax电话:

$.ajax({
                    url: '@Url.Action("UpdateSortOrder", "FormItems")',
                    data: { itemToUpdateId: item.attr("id"), newParentItemId: parentItemId, newPreviousItemId: previousItemId },
                    type: 'POST',
                    success: function (data) {
                        console.log(data);
                    },
                    error: function (xhr, status, exception) {
                        console.log("Error: " + exception + ", Status: " + status);
                    }
                });
Run Code Online (Sandbox Code Playgroud)

我的行动:

[HttpPost]
    public ActionResult UpdateSortOrder(Guid itemToUpdateId, Guid newParentItemId, Guid newPreviousItemId)
    {
        FormItem updatedItem = _formItemService.GetOne(x => x.Id == itemToUpdateId);

        return Json(updatedItem, JsonRequestBehavior.DenyGet);
    }
Run Code Online (Sandbox Code Playgroud)

使用chrome控制台,这些是来自回复的响应标头:

HTTP/1.1 500内部服务器错误缓存控制:私有内容类型:text/html; charset = utf-8服务器:Microsoft-IIS/7.5 X-AspNetMvc-版本:3.0 X-AspNet-版本:4.0.30319 X-Powered-By:ASP.NET日期:星期二,2012年12月18日21:53:41 GMT内容长度:17041

服务器日志不显示子状态代码.知道我在这里做错了什么吗?我更喜欢使用POST而不是GET. …

asp.net-mvc jquery asp.net-ajax

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

ASP.NET - UpdatePanel和JavaScript

有没有办法在UpdatePanel进程完成时执行脚本.

我有一个页面,允许"插入","复制"和"编辑"记录.这都是在UpdatePanel上完成的,以防止页面导航.在页面的其他地方,我想打印一条"flash"消息 - 比如"你已成功输入记录".它不在UpdatePanel附近,我想对消息使用jQuery效果,因此它会在4秒后淡出.如何使用UpdatePanel发回脚本或在UpdatePanel刷新后执行脚本?我应该将脚本写入asp:literal吗?想法?

asp.net updatepanel asp.net-ajax

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

将数据从ASP.NET页面传递到动态加载的ASCX用户控件

我正在使用C#和Ajax开发一个ASP.NET应用程序.

我有一个页面,用于保存动态加载的用户控件.我需要将一些数据(整数值和一些字符串)传递给动态加载的用户控件.

现在我使用Session来传递这些值,但我想我可以用另一种方式; 类似于VIEWSTATE或隐藏的输入.

你推荐我什么?

更新:

我动态加载控件这一事实非常重要,因为每次回发都会加载控件,而且我无法在控件上存储任何值.

c# ascx communication asp.net-ajax

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