![](/img/trans.png)
[英]ASP.NET MVC4 Ajax ActionLink helper doesn't work - reloads entire page with the returned partial view
[英]ASP.NET MVC 5 - Partial view doesn't work with my AJAX live search
我有以下问题
在我的ASP.NET MVC 5应用程序中,我想列出所有用户并拥有一个实时搜索栏,该栏会在您键入时更新。 我做到了,它可以工作,但是它不返回部分视图,而是像这样返回一个全新的页面。
这是我的控制器(AdminController.cs)
public class AdminController : Controller
{
protected readonly ApplicationDbContext db = new ApplicationDbContext();
public ActionResult Index()
{
return View();
}
public ActionResult Users()
{
var users = db.Users.ToList();
return View(users);
}
public ActionResult Search(string query)
{
var result = db.Users.Where(u => u.UserName.ToLower().Contains(query.ToLower())).ToList();
return PartialView("_UsersResult", result);
}
}}
我的看法(Users.cshtml)
@model List<Forum.Models.ApplicationUser>
@using (Ajax.BeginForm("Search", null,
new AjaxOptions
{
HttpMethod = "GET",
UpdateTargetId = "results",
InsertionMode = InsertionMode.Replace
}, new {id = "searchForm"}))
{
<input name="query" placeholder="Search" oninput="$('#searchForm').submit()"/>
<input type="submit" value="Search"/>
}
<div id="results">
@Html.Partial("_UsersResult", Model)
</div>
还有我的局部视图(_UsersResult.cshtml)
@model List<Forum.Models.ApplicationUser>
@foreach (var user in Model)
{
<h3>@user.UserName</h3>
}
如果要通过向服务器发出请求来呈现局部视图,则使用ActionResult不是正确的方法。 您将必须从控制器返回PartialViewResult。
public PartialViewResult Search(string query)
{
var result = db.Users.Where(u => u.UserName.ToLower().Contains(query.ToLower())).ToList();
return PartialView("_UsersResult", result);
}
希望能解决问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.