栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

.NETMVC5基于AJAX的无刷新搜索

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

.NETMVC5基于AJAX的无刷新搜索

1.创建MVC5项目

该步骤不过多累述。

2.安装AJAX程序包

安装 jQuery Unobtrusive Ajax和Microsoft.jQuery.Unobtrusive.Ajax程序包。

安装步骤:右键项目→管理NuGet程序包→浏览,输入 jQuery Unobtrusive Ajax,选择安装。

安装Microsoft.jQuery.Unobtrusive.Ajax,与上述步骤一致。

两程序包如下图

导包成功后会在Scripts文件夹下看到多出 jquery.unobtrusive-ajax.js 和 jquery.unobtrusive-ajax.min.js 这两个文件。

3.引用程序包

在App_Start文件夹下的BundleConfig.cs文件内的RegisterBundles方法内添加以下语句。

bundles.Add(new ScriptBundle("~/bundles/jqueryajax").Include(        //"~/bundles/jqueryajax"    jqueryajax为另取的别名,可通过别名来引用
                      "~/Scripts/jquery.unobtrusive-ajax*")); 

在View文件夹下的 _Layout.cshtml文件内引用。

_Layout.cshtml文件

 

   @Scripts.Render("~/bundles/jqueryajax")    //通过别名引用
 4.创建model类

省略。可参考上一篇文章:

.NETMVC基于Ajax的无刷新分页

5.创建链接数据库类

同上。

6.创建ShowController.cs文件

 ShowController.cs代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using WebApplication5.DAL;
using Webdiyer.WebControls.Mvc;

namespace WebApplication5.Controllers
{
    public class ShowController : Controller
    {
        private DataContext db = new DataContext();    //链接数据库

        public ActionResult Search(String searchString)
        {
            var article = from a in db.Articles select a;
            if (!String.IsNullOrEmpty(searchString))
            {
                article = article.Where(a => a.Title.Contains(searchString)
                                        || a.Author.Contains(searchString));
            }
            if (Request.IsAjaxRequest())    //判断是否为Ajax请求
            {
                //第一个值为分部视图名,第二个值为封装好的数据
                return PartialView("_Search", article.OrderByDescending(a => a.PubDate).ToPagedList(1, 3));
            }
            return View(article);
        }
    }
}
 7.给方法Search添加视图和分部视图

创建视图也可参考:

.NETMVC基于Ajax的无刷新分页

Search的视图Search.cshtml代码如下:

@model IEnumerable

@using Webdiyer.WebControls.Mvc
@{
    ViewBag.Title = "Search";
}

    Search
    @using (Ajax.BeginForm(new AjaxOptions
    {
        HttpMethod = "get",                    //使用get方法请求
        InsertionMode = InsertionMode.Replace, //将过滤的数据覆盖原数据
        UpdateTargetId = "textList"          //覆盖的地方(值为标签ID)
        
    }))
    {
        
        
    }

    @*引用分部视图*@ 
    @Html.Partial("_Search", Model) 

Search的分部视图 _Search.cshtml 代码如下:

@model IEnumerable


@{
    ViewBag.Title = "_Search";
}



    
        @foreach (var item in Model)
        {
            
        }
    
序号 @Html.DisplayNameFor(model => model.Title) @Html.DisplayNameFor(model => model.PubDate) @Html.DisplayNameFor(model => model.Author) @Html.DisplayNameFor(model => model.Source)
@Html.DisplayFor(modelItem => item.Title) @Html.DisplayFor(modelItem => item.PubDate) @Html.DisplayFor(modelItem => item.Author) @Html.DisplayFor(modelItem => item.Source)

应用程序进入对应Controller中的Search方法即可。

该程序的数据库和我上一篇

.NETMVC基于Ajax的无刷新分页 中使用的是同一数据,参照着做即可。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/905086.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号