Jaki jest najlepszy sposób radzenia sobie z identyfikatorem klienta ASP.NET

Próbuję znaleźć najlepszy sposób radzenia sobie ze sposobem, w jaki ASP.NET dodaje wartość do dowolnego elementu, który jest tworzonyrunat="server", bez konieczności uciekania się do używania<%= id.ClientID %>. Już dziś wymyśliłem następujące rozwiązanie, ale jestem pewien, że istnieją bardziej eleganckie rozwiązania:

    $(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);
    }

Jednym z problemów z tą metodą jest to, że muszę umieścić następujące ukryte pole na każdej stronie:

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

... i to sprawia, że ​​trochę kłuje (lub dodaje do istniejącego współczynnika klunkiness).

Moim ostatecznym celem jest uczynienie go tak, żebym już nie musiał używać<%= id.ClientID %> (lub cokolwiek, co wymaga kodu po stronie serwera), aby wszystkie moje JS mogły być wywoływane jako dołączenie, zamiast konieczności umieszczania ich na moich stronach ASPX. Och, moim drugim ostatecznym celem jest to, aby był jak najprostszy i nie wymaga wiele czasu na instalację od projektu do projektu.

Stworzyłem JSFiddle z przykłademhttp://jsfiddle.net/Realto619/8ZZYt/2/

questionAnswers(4)

yourAnswerToTheQuestion