編集:以下のコードは、必要な人のために機能します!ASP.NET MVC(Active Directoryリクエスト)でJQueryを使用してドロップダウンリストを作成する
この質問は役に立ちましたか?私は検索バーに入力中にロードするドロップダウンリストを表示する必要があります。私が入力している間、タイプされているUsernameをActive Directoryで検索してから、ドロップダウンリストにすべてのオプションを表示します(たとえば、4文字の後に結果が表示される)。
私は1つの入力、1つのボタン、私がADにアクセスすることができるC#クラスからユーザーを検索するコントローラ機能を持つ単純なフォームを持っています。私はデータを取得するJQueryスクリプトを置いた。データは正しく取得されていますが、自動完成で表示できません。何か案は?
形式:
<form class="form-inline" method="post" action="~/Home/SearchUserResult">
<label class="sr-only" for="inlineFormInput"> Nom et/ou Prénom </label>
<input type="text" class="form-control mb-2 mr-sm-2 mb-sm-0" name="searchName" id="searchName" placeholder="Nom et/ou prénom"/>
<button class="btn btn-primary" type="submit" id="searchValidate"> Rechercher </button>
</form>
マイADサーチ機能:
public List<string> SearchUserByName(string name)
{
try
{
SearchResultCollection resultCollection;
DirectoryEntry ldapConnection = createDirectoryEntry();
DirectorySearcher search = new DirectorySearcher(ldapConnection);
search.Filter = "(anr=" + name + ")";
search.PropertiesToLoad.Add("displayName");
resultCollection = search.FindAll();
if (resultCollection.Count == 0)
{
return null;
}
else
{
foreach(SearchResult sResult in resultCollection)
{
lastName.Add(sResult.Properties["displayName"][0].ToString());
}
}
return lastName;
}
catch (Exception e)
{
Console.WriteLine("Exception caught:\n\n" + e.ToString());
}
return null;
}
}
ここでは、コントローラの機能である。最後に、ここで私が持っているスクリプトがある@caner
public ActionResult SearchUserByName(string name)
{
ADManager adManager = new ADManager();
List<string> lastName = adManager.SearchUserByName(name);
if (lastName != null)
{
ViewData["Names"] = lastName;
return Json(lastName,JsonRequestBehavior.AllowGet);
}
return null;
}
によって示唆今、データを取得しますが、表示しません(アラート(データ)で必要なすべての情報を取得します):
<script>
$(function() {
$("#searchName").autocomplete({
source: function (request, response) {
$.ajax({
url: "/Home/SearchUserByName",
type: "GET",
data: { name: $("#searchName").val() },
contentType: "application/json;charset=utf-8",
dataType: "JSON",
success: function (data) {
alert(data)
response($.map(data, function (item) {
return {
label: item
}
}));
},
});
},
minLength: 4
})
});
</script>
EDITあなたの助けをありがとう:createDirectoryEntry()は、私はちょうどADへの接続を作成するために作られた機能です。 EDIT 2:あなたはjQueryの以外の何かで、私はこのようなすべてのもの
私は試していますが、オブジェクトがjavascriptからオートコンプリートを処理できないというエラーが表示されます。私のヘッダーには、jqueryスクリプトsrcとJQuery UIスクリプトsrcがあります。 –
私は修正を見つけました。一方、検索バーに入力すると結果が得られません。フォームを評価すると、私が望む結果が得られます。 Btw助けてくれてありがとう:) –
おそらくjqueryライブラリの問題...喜んで助けて:) – caner