Сериализация jquery и элементы управления .net - PullRequest
2 голосов
/ 29 декабря 2011

Я использую jquery serialize () с серверными элементами управления asp.net.

        <asp:DropDownList ID="ddFirmaAd" runat="server" Width="180" Height="25">
        </asp:DropDownList>

при печати массива

ajaxRequest("AjaxServices/Insert.aspx", $("#aspnetForm").serialize(), $('#returnMessage'), 0, $(this)); 

 function ajaxRequest(pageURL, queryString, putArea, timeout, disabledCtrl) {
        if (disabledCtrl != null)
            disabledCtrl.attr("disabled", "true");
        $.ajax({
            async: true,
            timeout: timeout,
            cache: false,
            url: pageURL + "?" + queryString,  


alert($("#aspnetForm").find("input,textarea,select,hidden").not("#__VIEWSTATE,#__EVENTVALIDATION").serialize());

печатает имя клиента ddFirmaAd в окне = "ct100% 24ct100% 24ContentPlaceHolder1% 24ContentPlaceHolder1% 24ddFirmaAd = 2"

я хочу получить ddFirmaAd.selectedValue в коде

string value = request.queryString("ddFirmaAd");

, но имя элемента управления = ct100% 24ct100% 24ContentPlaceHolder1% 24ContentPlaceHolder1% 24ddFirmaAd

как использовать элементы управления serialize () и .net?

Ответы [ 2 ]

1 голос
/ 29 декабря 2011

Как насчет string value = request.QueryString(ddFirmaAd.ClientID);

но если вы передадите эти значения на другую страницу, вы можете взломать их следующим образом:

string value = GetValueById("ddFirmaAd");

private string GetValueById(string endsWith)
    {
        var qs = HttpContext.Current.Request.QueryString;
        foreach(var key in qs)
        {
            string skey = key.ToString();
            if(skey.EndsWith(endsWith))
            {
                return qs[skey];
            }

        }
        return string.Empty;
    }

Не говорю, что это правильно. Просто не могу придумать ничего лучшего на основании предоставленного в настоящее время описания проблемы.

Вы можете настроить ClientIDMode на статический, но тогда ответственность за поддержание уникальных идентификаторов станет вашей ответственностью и может привести к трудностям в обнаружении ошибок на стороне клиента.

0 голосов
/ 29 декабря 2011

Если вы используете Asp.Net 4.0, вы можете использовать ClientIdMode = "Static", чтобы позволить идентификатору клиента совпадать с идентификатором. Для получения дополнительной информации, проверьте http://beyondrelational.com/blogs/hima/archive/2010/07/16/all-about-client-id-mode-in-asp-net-4.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...