Передача параметра в пользовательском элементе управления, динамически созданном с помощью повторяющихся значений Ajax

У меня проблема с пользовательским управлением и параметрами, которые я отправляю через веб-форму с помощью Ajax. Я использую пользовательский элемент управления, содержащий только ярлык.

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Message.ascx.cs" Inherits="Message" %>
<asp:Label ID="lblMessage" runat="server" Text="lblMessage"></asp:Label>

И веб-форма, содержащая этот пользовательский элемент управления. Я динамически создаю пользовательский элемент управления в веб-форме (код):

public partial class _Default : System.Web.UI.Page
{
    [WebMethod]
    public static string LoadUserControl(string message)
    {
        using (Page page = new Page())
        {
            UserControl userControl = (UserControl)page.LoadControl("Message.ascx");
            (userControl.FindControl("lblMessage") as Label).Text = message;
            page.Controls.Add(userControl);
            using (StringWriter writer = new StringWriter())
            {
                page.Controls.Add(userControl);
                HttpContext.Current.Server.Execute(page, writer, false);
                return writer.ToString();
            }
        }
    }
}

и передать параметр из веб-формы в пользовательский элемент управления следующим образом:

    <script type = "text/javascript">

        $(document).ready(function(){

            $("#demo").click(function () {
                $.ajax({
                    type: "POST",
                    url: "CS.aspx/LoadUserControl",
                    data: "{message: '" + $("#message").val() + "'}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (r) {
                        $("#Content").append(r.d);
                    }
                });
            });
        });
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <input type = "text" id = "message" />
    <input type = "button" id = "demo" value = "Load" />
    <div id  = "Content">

    </div>
    </form>
</body>
</html>

Проблема в том, что когда я нажимаю несколько раз кнопку, значение в «Контенте» дублируется несколько раз, а не только один раз и заполняется новым значением, которое я назначил текстовому полю. Кто-нибудь знает почему? Я хочу, чтобы каждый раз, когда я нажимаю кнопку, пользовательский элемент управления получал значение и заполнял информацию только один раз, а не несколько раз.


person Khristian Liahut    schedule 25.08.2013    source источник


Ответы (1)


заменять

 $("#Content").append(r.d);

ширина

$("#Content").html(r.d);
person Michael B.    schedule 25.08.2013