使用<asp:updatepanel> </asp:updatepanel> </umbraco:macro>更新<umbraco:macro>

时间:2013-04-16 09:00:10

标签: razor asynchronous updatepanel master-pages umbraco

我正在尝试使用umbraco(在母版页内)更新剃刀宏指令。我正在做的是使用ajax请求具有特定信息的web服务,获得答案,并希望使用从ajax-request到webservice获得的更新答案来更新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 () {

        }
    });

此致 大卫

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

更新面板非常方便,但我不认为可以按照您尝试的方式使用它们。 ASP.Net控件和剃须刀混合不好。