我的CITY集合为{id,name},我需要在用户输入的搜索中找到正确的城市。我已经在C#中创建了一个方法,用于清理键入的字符串以进行搜索:
用户键入了:Órlândõcítý 在蒙哥:奥兰多城
该方法将在ORLANDOCITY中进行清理和转换,但我还需要在ORLANDOCITY字符串中转换存储的城市才能找到。
我尝试过:
var stringCleaned = CleanToSearch(value);
_mongoCollection.Find(c => StringUtils.CleanToSearch(c.Name).Contains(stringCleaned)).ToList();
但是我收到了不受支持的过滤器错误。我该怎么做?
答案 0 :(得分:0)
我不确定100%确定CleanToSearch和StringUtils.CleanToSearch有什么区别?我可以看到它们稍后返回一个集合,但是最后一个方法(StringUtils.CleanToSearch)的目的是什么。我认为CleanToSearch的目的是以存储在数据库中的城市名称结尾。无论如何,我不会成为“为什么要这样做”之一。 您在City类中始终可以拥有一个包含StringUtils.CleanToSearch(城市名称)的结果的属性。因此,当您创建一个新城市时,请运行该方法并填充属性(CleanedNames)。
BestInPlaceEditor.prototype.placeButtons = function (output, field){
'use strict'
// the ok button isn't changed
if (field.okButton) {
output.append(
jQuery('<button>').html(field.okButton).attr({
type: 'submit',
class: field.okButtonClass
})
)
}
if (field.cancelButton) {
// create new cancel "<button>"
var $resetBtn = jQuery('<button>').html(field.cancelButton).attr({
type: 'reset',
class: field.cancelButtonClass
}),
// and traditional cancel '<input type="button">', but this should be hidden
$_resetBtn = jQuery('<input>').val(field.cancelButton).css({ display: 'none' })
.attr({
type: 'button',
class: '__real-btn-close-best_in_place'
});
// and bind event to 'trigger' click traditional button when the new <button> is clicked
$resetBtn.bind('click', function (event) {
$(event.currentTarget).parents('form.form_in_place').find('input.__real-btn-close-best_in_place').trigger('click');
event.stopPropagation(); // << also neccessary
});
// append both
output.append($_resetBtn).append($resetBtn);
}
}
}
您的搜索将是:
public class City
{
public City(string name)
{
Name = name;
CleanedNames = StringUtils.CleanToSearch(name);
}
string Name {get; set;}
string[] CleanedNames {get; set;}
}