Извините, что я очень новичок в JQuery ... Я не могу на всю жизнь понять, где моя ошибка. Когда я запускаю это, я не получаю никаких результатов. Когда я проверяю ошибку в Firefox и Chrome, она указывает на исходную строку. Я просто не вижу ничего плохого.JQuery Autocomplete in MVC3
Вот мой сценарий
<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] Вот ошибка синтаксиса светлячок плюет назад:
source: $.parseJSON(["Customer1","Customer2...
---------------------^
Так я начинаю думать, что проблема заключается в кавычки становятся визуализируется как Quot; вместо «.Если я попытаюсь поставить свой источник как« Test1 »,« Test2 »,« Test3 »], он отлично работает. Есть ли способ получить бритву, чтобы не кодировать HTML-код?
[UPDATE] Это был вопрос. решение использует Html.Raw()
проблема была бритва автоматически HTML, кодирующий JSON. исправление использует HTML.Raw
$('#CustName').autocomplete({
source: @Html.Raw(SqlHelper.getJSONArray("CustName", "dba.BillingInfo"))
});
И каков json, возвращенный вашим методом? Что такое рендеринг? –
@DidierGhys Вот пример вывода JSON [«Customer1», «Customer2», «Customer3»] – copjon
@DidierGhys И строка Firefox имеет $ ('# CustName'). Autocomplete ({ источник: [ Customer1 ", " Заказчик2 ", " Заказчик3 "] }); – copjon