【问题标题】:Update <umbraco:macro> with <asp:UpdatePanel>用 <asp:UpdatePanel> 更新 <umbraco:macro>
【发布时间】:2013-04-16 09:00:10
【问题描述】:

我正在尝试使用 .我正在做的是使用 ajax 请求具有特定信息的 web 服务,获得答案,并希望使用从 ajax 请求到 web 服务的更新答案更新 razorscript 中呈现的 HTML。在 javascript 中,我尝试部分回发更新面板的异步更新。

我有以下代码

母版页:

<asp:ScriptManager runat="server" ID="ScriptManager"/>
<asp:UpdatePanel runat="server" ID="UpdatePanel1">
    <ContentTemplate>
        <umbraco:Macro Alias="Macro1" runat="server"></umbraco:Macro>
    </ContentTemplate>
</asp:UpdatePanel>

Javascript:

$__doPostBack('UpdatePanel1', '');

首先,真的可以管理这个吗?我可以从 javascript 访问 UpdatePanel 吗?其次,这是最好的方法吗?如果没有,我怎样才能更有效地做到这一点。

编辑:

Ajax 请求代码:

$.ajax({
    type: "POST",
    cache: false,
    url: "/Handlers/Handler.ashx",
    data: jsonData,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function () {

       //Here i want to update the UpdatePanel, if possible
       },

       error: function () {

        }
    });

问候 大卫

【问题讨论】:

  • 您能否添加用于向网络服务发出 ajax 请求的代码?
  • 是的,我已经用请求处理程序的代码编辑了帖子。处理程序本身正在请求 Web 服务。
  • 获取返回的数据样本和要更新的 HTML 会不会太麻烦,然后我们可以为您提供一个更好的示例来说明如何处理它。
  • 问题是它不是被呈现的 HTML。这也是宏中的一些逻辑。将逻辑和 HTML 放在同一个页面中可能是不好的做法,但这是我们必须在稍后阶段重构的东西

标签: razor asynchronous updatepanel master-pages umbraco


【解决方案1】:

通过在每次 web 服务请求后重新加载页面来临时解决它。仍然想知道是否有可能通过将宏放入 UpdatePanel 并调用它来更新宏。

【讨论】:

    【解决方案2】:

    如果您已经在使用 Web 服务,则在 ajax 请求的回调中直接使用 javascript 更新 HTML。 jQuery 在这方面做得很好,但根据复杂性,您可能希望使用提供一些模板的框架,例如 KnockoutHandlebars.jsmustacheEmber.js

    更新面板很方便,但我认为不可能以您在此处尝试的方式使用它们。 ASP.Net 控件和 razor 不能很好地混合。

    【讨论】:

    • 是的,我明白你的意思,只是有很多字段需要用javascript渲染,我们已经考虑过这个解决方案。当然这是可能的,但工作量很大,因此这篇文章是否可以使用 UpdatePanel 更新(渲染)宏
    猜你喜欢
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    • 2020-01-07
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多