0
جستجو اتوماتیک با Ajax در MVC 5
جستجو اتوماتیک با Ajax در MVC 5
در این پست قصد تا به طور کامل نحوه جستجوی اتوماتیک با استفاده از Ajax در Asp.Net MVC 5 را آموزش دهیم.
ابتدا یک متدد به صورت زیر در کنترلی که می خواهید جستجو اتوماتیک انجام دهید ایجاد کنید.
public ActionResult GetData(string str)
{
var query = (from p in db.Posts
orderby p.Id ascending
where p.PostName.Contains(str)
select p).Take(10);
return Json(query.ToList(), JsonRequestBehavior.AllowGet);
}
در متدد بالا اطلاعات را از دیتابیس خواند وسپس 10 تای آنها را توسط json ارسال می کنیم.
کد های قسمت View
<input id="autoSearch" list="item" class="form-control " placeholder="جستجو..." /> <datalist id="item" style="direction: rtl;"></datalist>
اگر به کدهای بالا نگاه کنید یک input برای نوشتن متن جستجو و سپس از یک datalist برای نمایش کارکتر جستجو شده استفاده کردیم و همچنین برای ارتباط input و datalist از ویژه گی list در input را برابر با id آن قرار دادیم.
کدهای Jquery
<script src="~/Scripts/jquery-1.9.1.min.js"></script>
<script type="text/javascript" language="javascript">
$(document).ready(function () {
$('#autoSearch').on("input", function () {
var str = $('#autoSearch').val();
if ($.trim(str).length) {
getData(str);
}
});
function getData(str) {
$.ajax({
type: 'GET',
url: '/Home/GetData',
data: { "str": str },
dataType: 'json',
success: function (data) {
if (data != null) {
$("#item").empty();
for (var i = 0; i < data.length; i++) {
$("#item").append("<option value=" + data[i].PostName + ">" + data[i].PostName + "</option>");
}
}
},
beforeSend: function () {
},
complete: function () {
},
error: function (jqXHR, textStatus, errorThrown) {
alert(jqXHR + textStatus + errorThrown);
}
});
}
});
</script>
سپس توسط توسط jquery هنگامی که چیزی داخل input وارد می شود تابع getData را فراخوانی می کنیم و سپس اطلاعات را از سرور دریافت و در DataList نمایش می دهیم.
خروجی

نظر / سوال