Thursday 20 July 2017

Autocomplete Textbox in MVC

@model MvcApplication1.Models.ABCmodel
@{
    ViewBag.Title = "AutocompleteTxt";
   // Layout = "~/Views/Shared/_Layout.cshtml";
}
@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()
    <div class="form-group">
        <div class="col-md-4">
            @Html.TextBoxFor(model => model.Name, htmlAttributes: new { @class = "form-control" })
        </div>      
    </div>
}
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/start/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="~/Scripts/jquery-1.9.1.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script type="text/javascript">
    debugger
    $(document).ready(function () {
        $("#Name").autocomplete({
            source: function (request, response) {
                $.ajax({
                    url: "/AllControl/GetCountries",
                    type: "POST",
                    dataType: "json",
                    data: { Prefix: request.term },
                    success: function (data) {
                        response($.map(data, function (item) {
                            return { label: item.Name, value: item.Name };
                        }))

                    }
                })
            },
        });
    })
</script>


In Controller

  public ActionResult AutocompleteTxt()
        {
            return View();
        }
        [HttpPost]
        public JsonResult GetCountries(string Prefix)
        {
            var Countries = (from c in db.Tables
                             where c.Name.StartsWith(Prefix)
                             select new { c.Name, c.Id });
            return Json(Countries, JsonRequestBehavior.AllowGet);
        }



No comments:

Post a Comment