mvc ajax基础,ASP.NET MVC5入门2之Ajax实现数据查询--转载

开发环境:VS2013

数据库:SQL Server2008R2

架构:ASP.NET MVC5

开发语言:C#

数据库数据:

数据库结构:

81c613eb046346b74fb66f3610c46f50.png

数据库数据:

42029fcfb3693d0ba31d9e1589501288.png

ASP.NET MVC5:

1.创建项目:

cc1e1f6ff328a7b906088fc517cffeb3.png

新建 “ASP.NET Web应用程序” 项目

6a1de8c587beb49cbd08f5f7c03f6d52.png

选择“MVC”项目,“添加测试单元”作为可选项

57309614b29741a61cf21930fc9d7be6.png

项目新建完成,项目的架构如下:

fece666e0925d91bb815a13ff157cf6d.png

2.新建数据模型

9100cb33fe28e7b425afbf5c58530d97.png

选择:“数据”-->“ADO.NET 实体数据模型”,并为数据连接命名

9ae64863e27c97fdce4fa048deb9cca6.png

选择“来自数据库的CodeFirst”

16ac21c224ae9b3fc1b494ad595ea67e.png

设置数据库的连接,最后一定“测试连接”,成功后再点击“确定”

7d25a0abfa5c9893a61db19809fe83dd.png

此处的连接设置不推荐修改名字,默认即可

6f231cf16610887c844fa1033d8bf224.png

选择希望访问的数据库

7c27385f797314cdd8e1186d6daa7ff0.png

点击“完成”后,项目自动完成创建,默认生成的项目结构如下:

fb688b7b9122efa433707501fe40f2fc.png

对生成的SingersDB文件进行修改,修改后的代码如下:

68304ce7cc8ee2e3792e9d086540f058.gif

1 public partial class SingersDB : DbContext

2 {

3 //public SingersDB()

4 // : base("name=SingersDB")

5 //{

6 //}

7 public virtual DbSet TSingers { get; set; }

8 public virtual DbSet T_Music { get; set; }

9 }

de6ea2de89075cf8016e1ea2776396d2.gif

2.添加图片资源

4a83d7b9b1102957347459e69ca004e5.png

添加图片资源

ecab9a3b92e6ac88526ceb86acf79990.png

3.添加布局页

7d0607ca11f24cbac0f394696cb4e6ba.png

059b7edba1ef1c29f32e6bcf00080477.png

_BasicPage页生成以后,会添加一些默认的代码:

c6a358c05570480cb66dc10557606d0e.gif

1

2

3

4

5

6

@ViewBag.Title

7

8

9

10 @RenderBody()11

12

13

052f3fb5e7bd90cf4ee9c27491ec82e8.gif

将布局页代码进行修改,修改之后为:

3c6f98d4c2ad7613cdbe8c9652dbebf6.gif

1

2

3

4

5

6

@ViewBag.Title

7 @Styles.Render("~/Content/css") 8 @Styles.Render("~/bundles/modernizr") 9

10

11

12

13

16 Alternate Text

17

18

注册

19

登录

20

21

22

23

24 @RenderBody()

25

26 @Scripts.Render("~/bundles/jquery")27 @Scripts.Render("~/bundles/bootstrap")28 @RenderSection("scripts", required: false)29

30

739233d43676e2da71d15547dd2b5e4f.gif

新添加的代码以黄色背景标注:

7~8:引入样式

11~22:导航栏,12~21:导航栏的大小及样式,13~15:添加一行文本,并设置超链接,16:添加一个图片,17~22:添加注册及登录功能

26~28:引入jquery

注:jquery引入一般在body结束之前,所有的标记之后,这样使得页面响应最快

4.添加控制器

96710612e5e577b0991d4be1360e8205.png

062b25e7008c6a075dfc586f6be38f4e.png

63c49df19f5dba5df257082b4f0a35c1.png

此时会新建一个名为SinfersController的控制器,并包含有默认的代码:

5c3cae755269af0002b36d0403f20dab.png

修改代码如下:

1787fb728161a9907416edf72ddf29cf.gif

1 public class SingersController : Controller

2 {

3 SingersDB SingerDB = new SingersDB();

4 // GET: Singers

5 public ActionResult Index()

6 {

7 ViewBag.Message = "Index";

8 return View();

9 }

10 }

eb42672d50581642d7e8856c766a8a47.gif

如此,则SingersController控制器中的Index方法指向一个名为Index的页面。

5.添加(带有布局的)视图页

Views-->Singers文件夹-->添加-->带有布局的MVC5视图页(Razor)

c48e76ec919b3f9a721e762449405a7c.png

将布局页名称命名为“Index”,对应Controller中的Index方法。

f525d4b17911bec3a54d280e6bffdea0.png

选择之前创建的“_BasicPage.cshtml”布局页

c38a4ce676bc1ddd4f89851fb21f102a.png

新建成的Index.cshtml中只有一行代码,如下:

1 @{

2 Layout = "~/Views/Shared/_BasicPage.cshtml";

3 }

此时该页面将引用布局页,直接调试,就可以打开Index页面

b27a7eb69cf5ca3baf1d2aa599acca54.png

6.使用Ajax访问数据库

(1)安装Ajax

b4efd3c760ed889c8451e0aa3c7b3b4c.png

(2)编写ajax数据访问的分部页,并命名为:_SingersSearch.cshtml

d2c85166f0ce51bec8dc204c53a51a42.png

向_SingersSearch.cshtml中添加代码如下:

493fc3d43773326ccf90b8db91b9d024.gif

1 @model IEnumerable

2

3

4

5 @foreach (var item in Model)

6 {

7

@item.SingerName

8 }

9

10

9a95fbf669ad041f05b5338b028012a6.gif

这段代码的作用是遍历获取的数据,将SingerName以列表的形式显示,注意id为:searchresults

(3)在Index中添加Ajax的访问代码

17e7c63ac2334c66cda98e269afe204b.gif

1 @{

2 ViewBag.Title = "Music Home";

3 }

4

5

搜索

6

7 @using (Ajax.BeginForm("ArtistSearch", "Singer",

8 new AjaxOptions

9 {

10 InsertionMode = InsertionMode.Replace,

11 HttpMethod = "GET",

12 OnFailure = "searchFailed",

13 LoadingElementId = "ajax-loader",

14 UpdateTargetId = "searchresults",

15 }))

16 {

17

18

19

20 src="@Url.Content("~/Images/ajax-loader.gif")"

21 style="display:none" />

22 }

23

24

25

26

27 @section Scripts{

28

29 }

18e7c2d11202ff8c716e36824a308cb7.gif

注意,因为此处使用了Ajax,所以需要在页脚27~29处添加对Ajax的引用,但是不建议在模板页引用,这样会使所有的页面加载Ajax,降低网页的访问速度。

7:指明调用SingerController类中的ArtistSearch方法

12:指定数据检索失败的方法,一般使用一个jquery方法

13:指定网页加载中显示一个滚动的图片

14:检索结果放置的目标区域

19~22:只有当数据检索过程中才会显示,并且数据检索完毕后图片消失

27~29:ajax的脚本引用

(4)在控制器中添加代码

371ff4ef2689ec0498392c062bc0fdf1.gif

1 public ActionResult ArtistSearch(string name)

2 {

3 var singers = GetSingers(name);

4

5 return PartialView("_SingersSearch", singers);

6 }

7

8 private List GetSingers(string name)

9 {

10 return MusicDB.TSinger

11 .Where(a=>a.SingerName.Contains(name))

12 .ToList();

13 }

0850237f3f8f9727c7c26edc1a68f588.gif

函数GetSingers用于获取数据库中的Singer名称,ArtistSearch用于指向分部页

最终效果如图:

c065b703a935e73deb617c60e072e886.gif

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值