簡體   English   中英

ASP.NET MVC 5-部分視圖不適用於我的AJAX實時搜索

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM