我查看了所有其他stackoverflow帖子,但没有一个工作。
这是我的浏览页面中的位
@using (Ajax.BeginForm("Browse", "Store",
new AjaxOptions
{
HttpMethod = "GET",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "this"
}))
{
@Html.TextBox("searchString")
<input type="submit" value="Search"/>
}
<div id="this">
@Html.Partial("_Listings", Model)
</div>
这是我的包
bundles.Add(new ScriptBundle("~/bundles/shell").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/jquery-ui-{version}.js",
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));
这是我的_Layout文件
@Scripts.Render("~/bundles/shell")
这是我单击“搜索”按钮时应刷新的部分视图
<div id="listings">
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.Title)
</th>
<th>
@Html.DisplayNameFor(model => model.Description)
</th>
<th>
@Html.DisplayNameFor(model => model.Price)
</th>
<th></th>
</tr>
@foreach (var item in Model)
{
<div class="text-right">
<tr>
<td>
<h1>@Html.DisplayFor(modelItem => item.Title)</h1>
</td>
<td>
<h1> @Html.DisplayFor(modelItem => item.Description)</h1>
</td>
<td>
@Html.DisplayFor(modelItem => item.Price)
</td>
<td></td>
</tr>
</div>
}
</table>
</div>
我无法弄清楚出了什么问题。控制器很好,因为整个页面都使用searchString刷新,但是我无法获得id =“this”的div来重新加载。我很确定我的捆绑包是正确的。
控制器
[HttpPost]
public ActionResult Browse(string searchString)
{
var model = storeRepo.AllProducts(searchString).Take(10);
if (new HttpRequestWrapper(System.Web.HttpContext.Current.Request).IsAjaxRequest())
{
Debug.WriteLine("IsAjax");
return PartialView("_Listings", model);
}
return View("Browse", model);
}