2012-02-08 13 views
0

申し訳ありません私はJQueryを初めて使っています...私の人生はバグがどこにあるのか理解できません。私がこれを実行すると、結果は得られません。 FirefoxとChromeのエラーをチェックすると、ソース行を指しています。私は何か間違ったことを見ることはできません。MVC3のJQueryオートコンプリート

ここに私のスクリプトは

<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.js")" type="text/javascript"></script> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#CustName').autocomplete({ 
      //Firefox points to a syntax error here 
      source: @SqlHelper.getJSONArray("CustName", "dba.BillingInfo") 
     }); 

    }); 
</script> 

<p>Customer Name @Html.TextBox("CustName")</p> 

SqlHelper.getJsonArray私はJSON文字列を返すために使用している方法であるのです。実際に有効なJSONが返されていることを確認して確認しました。

public static string getJSONArray(string column,string table) 
    {    
     string qry = "SELECT DISTINCT " + column 
        + " FROM " + table 
        + " WHERE " + column + " is not null" 
        + " AND " + column + " <> ''" 
        + " ORDER BY 1"; 

     List<string> result = new List<string>(); 

     SqlDataReader reader = execQry(qry); 

     while (reader.Read()) 
     { 
      result.Add(reader[0].ToString()); 
     } 

     JavaScriptSerializer serializer = new JavaScriptSerializer(); 

     return serializer.Serialize(result); 
    } 

[UPDATE]ここ Firefoxは、構文エラーバック吐きされている:だから

source: $.parseJSON([&quot;Customer1&quot;,&quot;Customer2... 
---------------------^ 

私は問題は引用符がQUOTとしてレンダリングなっていると思い始めています。代わりに「[Test1を 『『Test2を』、『Test3は』]、それは正常に動作します私のように私のソースを入れてみてください。』の。HTML文字列をエンコードしないようにかみそりを取得する方法はありますか?

[UPDATE] それは問題でした。解決策はHtml.Rawを使用していた()

問題は、JSONをコードかみそり自動的にHTMLた。修正はHTML.Raw

$('#CustName').autocomplete({ 
    source: @Html.Raw(SqlHelper.getJSONArray("CustName", "dba.BillingInfo")) 
}); 
+0

あなたの方法で返されたジョンソンは何ですか?レンダリングされた出力は何ですか? –

+0

@DidierGhys JSON出力[Customer1 "、" Customer2 "、" Customer3 "]の例を次に示します。 – copjon

+0

@DidierGhys Firefoxには$( '#CustName')のオートコンプリート({ ソース:["カスタマー1 "、 "カスタマー2 ","カスタマー3 "] }); – copjon

答えて

1

$.parseJSONを使用してみてください使用している。

$(document).ready(function() { 
    $('#CustName').autocomplete({ 
     //Firefox points to a syntax error here 
     source: $.parseJSON(@SqlHelper.getJSONArray("CustName", "dba.BillingInfo")) 
    }); 
}); 
+0

ちょうど試しました...まだ動作していません... – copjon

関連する問題