Pulse7
7/16/2017 - 10:39 AM

Ajax.BeginForm

Ajax.BeginForm

@using WebApplication1.Models;
@model IEnumerable<RestaurantViewModel>

<div id="restaurantList">
    @foreach (var item in Model)
    {
        <div class="well-sm ">
            <h4>@item.Name</h4>
            <div>@item.City, @item.Country</div>
            <p>Reviews:@item.NumReviews</p>
            <hr />
        </div>
    }
</div>
@using WebApplication1.Models;
@model IEnumerable<RestaurantViewModel>


@using (Ajax.BeginForm(new AjaxOptions() {
    HttpMethod ="Get",
    InsertionMode=InsertionMode.Replace,
    UpdateTargetId ="restaurantList"}))
{
    <input type="text" name="search" value="" />
    <input type="submit" value="Search by name" />
}



@Html.Partial("_Restaurants",Model)
public ActionResult Index(string search="")
{
    var model = db.Restaurants
            .Where(r => r.Name.Contains(search))
            .OrderByDescending(r => r.Reviews.Average(rr => rr.Rating))
            .Select(r => new RestaurantViewModel { ID = r.ID, Name = r.Name, Country = r.Country, City = r.City, NumReviews = r.Reviews.Count })
            .Take(10);
    if (Request.IsAjaxRequest())
    {
        return PartialView("_Restaurants",model);
    }
    else
    {
        return View(model);
    }
}