申し訳ありません私は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(["Customer1","Customer2...
---------------------^
私は問題は引用符がQUOTとしてレンダリングなっていると思い始めています。代わりに「[Test1を 『『Test2を』、『Test3は』]、それは正常に動作します私のように私のソースを入れてみてください。』の。HTML文字列をエンコードしないようにかみそりを取得する方法はありますか?
[UPDATE] それは問題でした。解決策はHtml.Rawを使用していた()
問題は、JSONをコードかみそり自動的にHTMLた。修正はHTML.Raw
$('#CustName').autocomplete({
source: @Html.Raw(SqlHelper.getJSONArray("CustName", "dba.BillingInfo"))
});
あなたの方法で返されたジョンソンは何ですか?レンダリングされた出力は何ですか? –
@DidierGhys JSON出力[Customer1 "、" Customer2 "、" Customer3 "]の例を次に示します。 – copjon
@DidierGhys Firefoxには$( '#CustName')のオートコンプリート({ ソース:["カスタマー1 "、 "カスタマー2 ","カスタマー3 "] }); – copjon