私はデータベースを使用して電話帳アプリケーションを作成しました。それで、オートコンプリート機能を作成する必要があります。私はストアドプロシージャを記述したデータベースを持っています。私はまた、オートコンプリート用のJavaScriptコードを書いています。ASP.NET MVC Entity Frameworkアプリケーションでストアドプロシージャを使用してオートコンプリート検索を作成したい
私の問題は、どのようにコントローラのストアドプロシージャを呼び出すかです。
私のストアドプロシージャ:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[PhoneBook_SearchCustomers]
@FName NVARCHAR(30)
AS
BEGIN
SELECT *
FROM UserDetails
WHERE FName LIKE '%' + @FName + '%'
END
私.cshtml
コードは次のとおりです。
<script type="text/javascript">
$(function() {
$("#txtCustomer").autocomplete({
source: function (request, response) {
$.ajax({
url: '/Home/AutoComplete/',
data: "{ 'prefix': '" + request.term + "'}",
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
success: function (data) {
response($.map(data, function (item) {
return item;
}))
},
error: function (response) {
alert(response.responseText);
},
failure: function (response) {
alert(response.responseText);
}
});
},
select: function (e, i) {
$("#hfCustomer").val(i.item.val);
},
minLength: 1
});
});
</script>
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
<input type="text" id="txtCustomer" name="CustomerName" />
}
これは私が捕まってしまったコントローラです。オートコンプリート機能を機能させるためにストアドプロシージャを呼び出す方法はありません。
[HttpPost]
public JsonResult AutoComplete(string prefix)
{
using (PhoneBookDatabaseEntities entities = new PhoneBookDatabaseEntities())
{
var nam = entities.PhoneBook_SearchCustomers(prefix);
var customers = (from customer in nam
where customer.FName.StartsWith(prefix)
select new
{
label = customer.FName,
}).ToList();
return Json(customers);
}
}
ご協力いただきまして誠にありがとうございます。前もって感謝します。
私はnam変数に値を取得していますが、customers変数に値はありません。私を案内してください。このコードには何か問題があります。 var customers =(お客様の名前は )customer.FName.StartsWith(接頭辞) 新しい { label = customer.FName、 }を選択してください。ToList(); – Raj
これは、あなたのSPでContains()条件で 'FName'をフィルタリングする理由があるかもしれませんが、あなたのコードでは、StartsWith()条件で再び' FName'をフィルタリングしています。 'FName'が_Alex_で、' prefix = "lex" 'の値をDBに記録しているとします。あなたのSPは、 'FName'が_Alex_であるレコードをすべて返しますが、それらのレコードは' prefix = "lex" 'で始まらないため、' customers'変数に追加されません。 – Ammar