【发布时间】:2016-08-15 12:53:04
【问题描述】:
我有以下问题
在我的 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>
}
【问题讨论】:
-
如果你的重定向,那是因为你没有包含相关的脚本(
jquery.unobtrusive-ajax.js)
标签: c# ajax asp.net-mvc-5