![](/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.