2013-04-18 55 views
0

我甚至不知道如何搜索 - 我使用.NET MVC 4與EF和我有2個簡單的模型與一個許多關係 - 公司和地點。一個公司可以有很多地方(例如澳大利亞,美國,加拿大等)ASP.NET與EF,如何自動完成文本字段從數據庫查找

我想創建一個表單,其中有一個文本字段,用戶可以輸入一個逗號分隔的位置列表,這將自動複製爲現有的地點,或爲新的地點添加一個新的位置。即,如果他們開始輸入「Aus」,並且Austrlia和Austria都位於Locations數據庫表中,那麼應該顯示這些用戶以供選擇 - 完全像StackOverflow對標籤所做的那樣。但是,如果他們鍵入數據庫表中尚不存在的位置,則應該創建一條新記錄。

任何指針將不勝感激!

謝謝, 羅比

回答

2

我將讀取來自DB的所有位置呈現視圖之前和在JSON結構,或在呈現的視圖的簡單JavaScript數組序列化。這可以在jQuery的幫助下用於客戶端的自動完成(你可以使用插件,但應該足夠簡單,以滿足你的需求)。我不會通過對某些Ajax調用服務器由keydown事件觸發

表單提交後,顯然位置字段的內容將只是文本,因此,您需要在數據庫中查找該位置,如果它不返回任何內容,你需要事先將它添加到爲公司節省記錄

我不知道您的具體型號,但代碼可能是這個樣子:

var location = db.Locations.Find(l => l.LocationName == valueThatWasSubmitted); 
if (location == null) 
{ 
    // save new location 
} 
// location exists, proceed with the rest (saving the company, etc.) 
+0

我認爲這是有道理的 - 我如何檢查位置是否是新的,然後將它保存到該記錄中,如果它尚不存在? – 2013-04-20 11:19:45

+0

由於您使用的是EF,因此只需使用Linq查詢通過位置名稱查找數據庫。我用一個例子更新了答案。 – Floremin 2013-04-20 16:55:47

相關問題