2

私は自分の質問に対する決定的な答えを探しましたが、見つけることができませんでした。多くのサイトがトピックをカバーしていますが、探している答えが見つかりません。

たとえば、顧客のクエリを処理する ASPX ページがあります。コード ビハインドには Customer クラスがあります。たとえば、JavaScript 関数で顧客 ID と名前を使用したい場合。私にとって最善の方法は何ですか?

私はこのコード (更新を依頼された Web サイト) を持っていますが、VS が表示するすべての警告を整理しようとすると、このコードは 2 つ表示されます。

<script type="text/javascript">
function DoSomeThingFunction(enable)
{
    var enableStr = enable ? "on" : "off";
    var intClientID = <%= Customer.ClientID %>;
    var strClientName = <%= Customer.ClientName %>;

    <!--
        More functionality
    -->

};
</script>

次の 2 行で期待される式..

var intClientID = <%= Customer.ClientID %>;
var strClientName = <%= Customer.ClientName %>;

このコードを更新して、警告を停止できます..

<script type="text/javascript">
function DoSomeThingFunction(enable)
{
    var enableStr = enable ? "on" : "off";
    var intClientID = parseInt('<%= Customer.ClientID %>');
    var strClientName = '<%= Customer.ClientName %>';

    <!--
        More functionality
    -->

};
</script>

私の質問は次のとおりです。警告を表示せずにこれを達成する最良の方法は何ですか? 最善の方法とは、警告が表示されることを意味するので、我慢しなければならないのでしょうか? どんな種類の警告も見るのが嫌いで、それらをすべて修正しようとします。

ご覧いただきありがとうございます

4

3 に答える 3

1

変数を登録するには、コードから次のコードを使用します (たとえば、レンダリング前)。

Page.ClientScript.RegisterClientScriptBlock(GetType(), "variables", 
  String.Format("var intClientID = {0};var strClientName = '{1}';", 
     Customer.ClientID, 
     Customer.ClientName), 
   true);
于 2012-08-17T15:20:39.237 に答える
1

最初のコード ブロックは、私が過去に行った方法です。値が一重引用符または二重引用符で囲まれた文字列の場合。数字は引用符を付けなくてもかまいません。

もう 1 つの方法は、ページで隠しフィールドを使用することです。

<input type="hidden" id="customerId" value="1234" />
<input type="hidden" id="customerName" value="John Doe" />

<script type="text/javascript">
function DoSomeThingFunction(enable)
{
    var enableStr = enable ? "on" : "off";
    var intClientID = $('input#customerId').val(); //using jQuery to retrieve the value
    var strClientName = $('input#customerName').val();

    <!--
        More functionality
    -->

};
</script>

私は VS の警告について心配していません。ほとんどの場合、コードは期待どおりに機能し、特に html、css、javascript に関しては、警告は廃止されています。

于 2012-08-17T15:18:45.583 に答える
0

ClientID が整数で、ClientName が文字列であることがわかっている場合は、コードの 2 番目のブロックの方が優れています。VS の JS バリデーターが割り当てを確認し、 <%=...%> が数値データ型であることを確認できないため、その周りに引用符を表示したいと考えています。さらに、ClientName が実際に文字列である場合、文字列を引用符で囲む必要があるため、JS は実行時に失敗します。

于 2012-08-17T15:17:52.307 に答える