标签: asp.net-ajax

何时需要ScriptManager/ScriptManagerProxy?

我不认为我能找到一个明确的答案,所以我会在这里问一下.什么时候需要ScriptManager(或者在Master Page上使用ScriptManager的情况下是ScriptManagerProxy)?

例如,假设我在MasterPage上有一个ScriptManager:

  1. 如果我有一个包含UpdatePanel的Web内容表单,它是否需要ScriptManagerProxy?

  2. 如果我有一个包含用户控件的Web内容表单,并且用户控件中有一个UpdatePanel,那么用户控件是否需要ScriptManagerProxy?

  3. 如果我有一个包含UpdatePanel的Web内容表单和一个也包含UpdatePanel的UserControl,那么Web内容表单和/或用户控件是否需要ScriptManagerProxy?

谢谢.

.net asp.net asp.net-ajax

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

嵌套的UpdatePanel触发器

我的孩子UpdatePanel更新其内容及其父UpdatePanel的内容.

<asp:UpdatePanel ID="UpdatePanel1" 
                 runat="server">
    ...
    <asp:UpdatePanel ID="UpdatePanel2" 
                     runat="server">
        ...
    </asp:UpdatePanel>
    ...
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)

我不希望每次子更新时都更新我的父UpdatePanel.

.net asp.net ajax updatepanel asp.net-ajax

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

似乎没有调用ASP.NET Javascript Converter

我有一个使用自定义JavaScriptConverter的ASP.NET 3.5 SP1 Web应用程序.代码过去曾在某个时间工作,但已停止工作.我不知道中间服务器端发生了什么变化.我们现在看到的问题是没有调用转换器,因此我们收到System.Data.DataRow无法序列化的错误.

以下是web.config的相关部分:

<system.web.extensions>
    <scripting>
        <webServices>
            <jsonSerialization>
                <converters>
                    <add name="DataSetConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataSetConverter, Microsoft.Web.Preview" />
                    <add name="DataRowConverter" type="WebUI.DataRowConverter, WebUI.DataRowConverter, Version=1.1.0.323, Culture=neutral" />
                    <add name="DataTableConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataTableConverter, Microsoft.Web.Preview" />
                </converters>
            </jsonSerialization>
        </webServices>
    </scripting>
</system.web.extensions>
Run Code Online (Sandbox Code Playgroud)

该类的修剪版本如下(仅修剪以避免在不必要的实现上浪费空间):

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Data;
using System.Web.Script.Serialization;

namespace WebUI {
    public class DataRowConverter : JavaScriptConverter {
        private ReadOnlyCollection<Type> _supportedTypes = new ReadOnlyCollection<Type>(new Type[] { typeof(DataRow) });

        public override object Deserialize(IDictionary<string, object> dictionary, Type type, JavaScriptSerializer serializer) {
            // stuff
            return dr;
        }

        public override …
Run Code Online (Sandbox Code Playgroud)

json asp.net-ajax

6
推荐指数
1
解决办法
1348
查看次数

从ASP的Ajax.ActionLink获取JSonResult

如何使用Ajax.ActionLink从控制器方法实际获取JSON?我尝试搜索网站,但最接近的是ASP.NET MVC控制器操作返回JSON或部分html

并且"最佳答案"实际上并没有告诉您如何从ajax.actionlink中的SomeActionMethod获取JSON.

asp.net-ajax asp.net-mvc-3

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

ASP.Net AJAX UpdatePanel无法触发SelectedIndexChanged事件

我有一个ASP.Net RadioButtonList控件,AutoPostBack设置为true.我还有一个OnSelectedIndexChanged函数,只要用户更改选择就会调用该函数.最后,用户需要提供此控件所需的信息,因此当用户到达页面时,我有一个默认选择 -

<asp:RadioButtonList ID="rblHighestDegree" runat="server" AutoPostBack="true"
        onselectedindexchanged="rblHighestDegree_SelectedIndexChanged">
   <asp:listitem Runat="server" Text="Master's Degree" Selected="True" />
   <asp:listitem Runat="server" Text="Doctorate" />
</asp:RadioButtonList>
Run Code Online (Sandbox Code Playgroud)

在上面的代码示例中,当用户从默认选择(例如,"Master's Degree")切换到不同选项(例如,"Doctorate")时,则触发SelectedIndexChanged事件.然后,如果用户改变主意,然后选择原始默认选项,则再次触发SelectedIndexChanged事件.这完全符合预期和预期.

我有第二个控件,根据上面的选择启用或禁用代码隐藏...

<asp:ScriptManager ID="scriptmanager1" runat="server" />
<asp:UpdatePanel ID="updatepanel1" runat="server">
<ContentTemplate>
<asp:RadioButtonList ID="rdlYearsOfStudy" runat="server" Enabled="false">
<asp:listitem Runat="server" Text="Less than 3 years" />
<asp:listitem Runat="server" Text="3 - 4 years" />
<asp:listitem Runat="server" Text="5 - 6 years" />
 </asp:RadioButtonList>
</ContentTemplate>
<Triggers>
  <asp:AsyncPostBackTrigger ControlID="rblHighestDegree" EventName="SelectedIndexChanged" /> 
</Triggers>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)

只有我将第二个控件放在ASP.Net AJAX UpdatePanel中才能启用异步回发(如上所示)之后,我才会遇到这个问题.一旦我这样做,原始的RadioButtonList控件将仅在我选择当用户到达页面时默认选择的ListItem时回发.如果用户随后选择原始默认选择,则不会发生回发.

为了澄清,如果我回发而不将适用的第二个控件放在ASP.Net AJAX UpdatePanel中,那么无论用户选择哪个RadioButtonList ListItem,SelectedIndexChanged都可以工作.另一方面,在将控件放在UpdatePanel中以应用AsyncPostBackTrigger之后,回发仅针对非默认ListItem的选择.

可能相关的更多信息是我使用Microsoft Visual Studio …

updatepanel radiobuttonlist asp.net-ajax selectedindexchanged

6
推荐指数
1
解决办法
8298
查看次数

IIS7会话失去了它的价值

我已经将挑战响应方案实现为Ajax处理程序.出于某种原因,它在工作几个月后停止工作.调查问题表明,Context.Session[KEY]在挑战和响应呼叫之间失去了价值.

我把Session_StartSession_End(和其他几个)在Global.asax.cs中的方法与一些记录那里,我看到一个新的在session_start事件与相同的会话ID解雇,没有Session_End中的事件

问题是:为什么IIS会丢失会话值?

更新:我尝试切换到SQLServer会话,但行为没有变化.在极少数情况下,会话按预期工作,不确定原因.我尝试了所有"会话丢失变量"故障排除指南我发现无效

更新2:我将问题缩小到缺少会话cookie,但修改my.browsers配置后几次尝试都没有解决问题.当我从浏览器调用ajax处理程序时,会话cookie"ASP.NetSessionId"按预期显示.我将站点和服务器的IIS设置中的cookie名称更改为"SessionId",但即使重新启动服务器,我仍然看到ASP.NET.我仍然想把这个赏金给予那些知道发生了什么的人.同时我通过在代码中设置会话cookie来解决这个问题.

Login.ashx的伪代码:

string login = GetParameter("login", context);
string passhash = GetParameter("pass", context);
string challenge = "" + Context.Session["CHALLENGE"];
if (!string.IsNullOrEmpty(challenge))
{
  // this is the 'response' part
  string challengeResponse = Crypto.GetChallengeResponse(Challenge, UserFromDB.PassHash);
  if (challengeResponse == passhash)
  {
    // Great success, challenge matches the response
    Log.I("Success");
    return "SUCCESS";
  }
  else
  {
    Log.W("Failed to respond");
    return "FAILED TO RESPOND";
  }
}
else
{
  // if passed login or session-stored challenge are empty …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-ajax session-variables

6
推荐指数
1
解决办法
2245
查看次数

AJAX POST到MVC控制器显示302错误

我想在我的MVC视图中进行AJAX POST.我写了以下内容:

视图中的脚本代码

$('#media-search').click(function () {
    var data = { key: $('#search-query').val() };

    $.ajax({
        type: 'POST',
        url: '/Builder/Search',
        data: JSON.stringify(data),
        dataType: 'json',
        contentType: 'application/json; charset=utf-8',
        success: function (data) {
            $('.builder').empty();
                alert("Key Passed Successfully!!!");
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

控制器代码

[HttpPost]
public ActionResult Search(string key)
{
    return RedirectToAction("Simple", new { key=key });
}
Run Code Online (Sandbox Code Playgroud)

但是在AJAX POST上,我发现302找到了错误

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

6
推荐指数
1
解决办法
9529
查看次数

"ScriptManager"名称在当前上下文中不存在

我复制了一些代码来解决在ASP.Net中进行AJAX回发后运行JavaScript的问题.不幸的是,新代码在进行构建时给了我以下错误:

The name 'ScriptManager' does not exist in the current context
Run Code Online (Sandbox Code Playgroud)

现在我以前使用过ScriptManager,为什么现在会给我带来问题呢?是不是所有ASP.Net页面都可用?毕竟我的母版页上有一个脚本管理器......

javascript asp.net webforms asp.net-ajax scriptmanager

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

为什么Ajax.BeginForm在提交后重定向到新的空白页面?

为什么Ajax.BeginForm在提交后将我的页面重定向到新的空白页面?

我的控制器代码是:

    [HttpPost]
    public void ProductCommentAdd(int productId, string text)
    {
           //Do something
    }
Run Code Online (Sandbox Code Playgroud)

在视图中调用Mvc ajax是:

    @using (Ajax.BeginForm("ProductCommentAdd", "Shop", new AjaxOptions() { HttpMethod = "POST"}))
    {
                <input type="hidden" value="@Model.ProductId" name="ProductId"/>
                <textarea name="text"></textarea>
                <input type="submit" value="Submit"
    }
Run Code Online (Sandbox Code Playgroud)

当我单击提交按钮时,我的页面重定向到新的空白页面.我怎么解决它?

c# asp.net-mvc asp.net-ajax

6
推荐指数
1
解决办法
3964
查看次数

按钮单击事件后调用jquery自动完成

我想调用一个jquery自动完成功能,但点击一下按钮后.在按钮单击事件中,gridview和textbox是可见的,否则它们是不可见的.

下面是我的代码脚本

 $(document).ready(function () {
            SearchText();
        });
        function SearchText()
        {
            $(".autosuggest").autocomplete({
                source: function (request, response) {
                    $.ajax({
                        type: "POST",
                        contentType: "application/json; charset=utf-8",
                        url: "CalendarDetails.aspx/GetAutoCompleteData",
                        data: "{'Col3':'" + document.getElementById('txtSearch').value + "'}",
                        dataType: "json",
                        success: function (data) {
                            response(data.d);
                        },
                        error: function (result) {
                            alert("Error");
                        }
                    });
                }
            });
        }
Run Code Online (Sandbox Code Playgroud)

HTML

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
            <asp:Label ID="Label4" runat="server" Text="ID" Font-Bold="True"></asp:Label>
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList>
            <br />
            <br />
            <asp:Label ID="Label1" runat="server" Text="Start Date" Font-Bold="True"></asp:Label>
            <input type="text" id="datepickerStart" runat="server" />
            &nbsp;
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" …
Run Code Online (Sandbox Code Playgroud)

c# jquery asp.net-ajax

6
推荐指数
1
解决办法
737
查看次数