0

我什至不知道如何搜索这个 - 我正在使用 .NET MVC 4 和 EF,并且我有 2 个具有一对多关系的简单模型 - 公司和位置。一家公司可以有很多地方(例如,澳大利亚、美国、加拿大等)

我想创建一个具有文本字段的表单,用户可以在其中输入以逗号分隔的位置列表,这将自动完成现有位置,或者为新位置添加新位置。

即,如果他们开始输入“Aus”并且 Austrlia 和 Austria 都在 Locations 数据库表中,那么应该向用户显示这些以供选择——就像 StackOverflow 对标签所做的那样。但是,如果他们输入的位置在数据库表中尚不存在,那么这应该会创建一条新记录。

任何指针将不胜感激!

谢谢,罗比

4

1 回答 1

2

在呈现视图之前,我会从数据库中读取所有位置,并将它们序列化为 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.)
于 2013-04-18T02:46:30.830 回答