2010-03-10 98 views
1

我試圖開發我的第一個ASP.NET MVC web應用程序,並遇到jquery ui自動填充小部件的問題。無法讓Jquery ui自動填充小工具工作

目前我的表格中有一些文本框可以很好地適應自動填充功能。

我的 「做」(汽車品牌)文本框中的代碼顯示如下:

的jQuery:

$(function() { 
    $("#Make").autocomplete({ 
      source: '<%=Url.Action("Make","AutoComplete") %>' 
    }); 
}); 

ASP.NET MVC控制器:

public ActionResult Make(string term) 
{ 
    return Json(Service.GetHints(HintType.Make, term, 20)); 
} 

GetHints()返回提示IList,一個只有標籤和值字符串屬性的對象。文檔暗示這就是我應該返回到jquery,但它不想工作?任何人都可以給我任何建議/幫助嗎?

+0

你成功調用的ActionResult? – 2010-03-10 10:13:16

+0

是的。每次我編輯Make文本框中的文本時,它都會觸發ActionResult。 – Boob 2010-03-10 10:25:19

+0

你能發佈一個鏈接到你正在使用的jQuery自動完成小部件的文檔嗎?您可能會以錯誤的格式返回您的json數據。 – 2010-03-10 23:24:05

回答

2

我也有這個問題。您將需要將您的ActionResult更改爲JsonResult

MVC 2中的JsonResult已發生變化,因此它將不再使用HTTP GET來避免JSON劫持。

因此,您可以更改您的代碼以通過HTTP POST返回或允許GET行爲,這可能會讓您打開到JSON hijacking

嘗試修改代碼遵循格式

return Json(data, JsonRequestBehavior.AllowGet); 

使你的代碼看起來像

public JsonResult Make(string term) 
{ 
    return Json(Service.GetHints(HintType.Make, term, 20), JsonRequestBehavior.AllowGet); 
}