Как лучше всего обращаться с ClientID ASP.NET

Я пытаюсь найти лучший способ справиться с тем, как ASP.NET добавляет значение к любому элементу, который создается сrunat="server", не прибегая к использованию<%= id.ClientID %>, Ранее сегодня я придумал следующее решение, но уверен, что есть более элегантные решения:

    $(document).ready(function() {
        var dotNetPrefix = $("[id$='prepended_ID_value']").attr('id');
        if (dotNetPrefix !== undefined) {
            dotNetPrefix = dotNetPrefix.replace('prepended_ID_value', '');
            dotNetPrefixID = '#' + dotNetPrefix;
            console.log('dotNetPrefix = ' + dotNetPrefix);
            testDotNet('prepended_ID_value');
        } else {
            console.log('Hidden Field is Missing! => <asp:HiddenField runat="server" ID="prepended_ID_value" Value="dotNet_ID_Prefix" />');
        }

    });

    function testDotNet(getID) {
        var test_dotNetPrefixID = $(dotNetPrefixID + getID).val();
        console.log('$(\'' + dotNetPrefixID + getID + '\').val() = ' + test_dotNetPrefixID);
    }

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

<asp:HiddenField runat="server" ID="prepended_ID_value" Value="dotNet_ID_Prefix" />

... и это делает его немного грубым (или добавляет к существующему фактору грубости).

Моя конечная цель - сделать так, чтобы мне больше не приходилось использовать<%= id.ClientID %> (или что-либо, что требует кода на стороне сервера), так что весь мой JS может быть вызван как включение вместо того, чтобы вставлять его в мои страницы ASPX. О, моя вторая конечная цель состоит в том, чтобы это было как можно проще и не требовало много времени на установку от проекта к проекту.

Я создал JSFiddle с примеромhttp://jsfiddle.net/Realto619/8ZZYt/2/

Ответы на вопрос(4)

Ваш ответ на вопрос