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);
}
}