在接触Mvc后,开始有点觉得很累,什么都要自己做,完全没有WebForm的易用性;

大概用了一个月左右的时候,越用用顺手,就习惯了MVC的这种开发方式,灵活,简洁;

当初学习MVC,网上看资料,都是讲的基础知识,没有一个完整的Demo,我今天就来实现这样的一件事吧!

  1. 创建MVC项目(本例用MVC4),选择空模版
  2. 创建HomeController,放在根目录的Controllers文件夹下面
  3. 添加如下代码
  4.  /// <summary>
    /// 列表页面
    /// </summary>
    /// <returns></returns>
    public ActionResult Index()
    {
    return View();
    } /// <summary>
    /// 显示的列表
    /// </summary>
    /// <returns></returns>
    public ActionResult IndexResult()
    {
    List<DiaryTab> model = new List<DiaryTab>(); DiaryManage server = new DiaryManage();
    model = server.GetDiaryList();
    model.Add(new DiaryTab()
    {
    DiaryTitle = DateTime.Now.ToLongTimeString(),
    DiaryTag = "动态时间" });
    Thread.Sleep();
    return View(model);
    }
  5. 在Views-Home下创建视图,快捷创建方法 在Index()、IndexResult()方法体内右击,找到“添加视图”,就会自动在这个文件夹里建立好相应的文件件
  6. 文件新建完成,开始写代码!!

这里建立了两个ActionResult,分别对应两个页面,Index.cshtml是列表页面主体,用来放置查询条件,和查询按钮;IndexResult.cshtml是列面里数据页面,只是用来显示数据,这个页面会异步加载到 Index.cshtml里面去,通过JS添加到指定DIV里

话不多说,放代码

Index.cshtml 代码

<div class="search "><!--查询条件-->
<table class="tableList">
<tr>
<td>
<input type="text" id="txtName" name="Name" />
</td>
<td>
<input type="button" id="btnSearch" onclick="Search()" value="查找" />
</td>
</tr>
</table>
</div>

  

 <!--用来显示数据列表-->
<div id="result"> </div>
<script>
function Search() {
var url = '@Url.Action("IndexResult", "Home")';
$("#btnSearch").val("查找中…");//这里可以用于显示Loading图片
$.post(url, {}, function (data) {
$("#btnSearch").val("查找");
$("#result").html(data);//JS异步请求后,绑定到 result Div里 }); }
 </script>

 

IndexResult.cshtml 代码

 @using RgWan.Entity;
@model List<DiaryTab>
<table class="tableList">
<tr>
<td>文章标题</td>
<td>文章内容</td>
</tr>
@foreach (RgWan.Entity.DiaryTab item in Model) //循环绑定数据,这个列表最终会显示到Index页面中
{
<tr>
<td>@item.DiaryTitle</td>
<td>@item.DiaryTag</td>
</tr>
}
</table>

完成

总结一下:

这种写法,IndexResult的重用性会比较高。样式什么的,可以写在Index页面,这样样式和数据分离更加明显;

在数据加载时,页面会不会刷新,异步Post请求的;界面友好;

本例相关文件下载

如何用Mvc实现一个列表页面-异步加载的更多相关文章

  1. [WP8.1UI控件编程]Windows Phone大数据量网络图片列表的异步加载和内存优化

    11.2.4 大数据量网络图片列表的异步加载和内存优化 虚拟化技术可以让Windows Phone上的大数据量列表不必担心会一次性加载所有的数据,保证了UI的流程性.对于虚拟化的技术,我们不仅仅只是依 ...

  2. MVC中实现部分内容异步加载

    MVC中实现部分内容异步加载 action中定义一个得到结果集的方法 public ActionResult GetItemTree(string title, int itemid, int? pa ...

  3. 页面异步加载javascript文件

    昨天听一同事说的异步加载js文件,可以提高页面加载速度.具体方法如下:(function() {  var ga = document.createElement('script'); ga.type ...

  4. 潭州课堂25班:Ph201805201 django 项目 第二十二课 文章主页 新闻列表页面滚动加载,轮播图后台实现 (课堂笔记)

    新建static/js/news/index.js文件 ,主要用于向后台发送请求, // 新建static/js/news/index.js文件 $(function () { // 新闻列表功能 l ...

  5. 关于Web中列表页面的加载问题

    2017年5月23日,天气晴朗.尽管昨晚睡的不踏实,好在今天心情还不是很糟糕,近来事情颇多,尤其是对于TA的改变,至少目前还是没有习惯,但时间将会解决一切,这点深有体会.此时此刻,又想起了苏东坡的那首 ...

  6. 当vue页面异步加载的数据想在页面上渲染怎么办

    <template> <div class="test"> <div v-for="(item, index) in arr" : ...

  7. [置顶] iOS学习笔记47——图片异步加载之EGOImageLoading

    上次在<iOS学习笔记46——图片异步加载之SDWebImage>中介绍过一个开源的图片异步加载库,今天来介绍另外一个功能类似的EGOImageLoading,看名字知道,之前的一篇学习笔 ...

  8. Android图片异步加载之Android-Universal-Image-Loader

    将近一个月没有更新博客了,由于这段时间以来准备毕业论文等各种事务缠身,一直没有时间和精力沉下来继续学习和整理一些东西.最近刚刚恢复到正轨,正好这两天看了下Android上关于图片异步加载的开源项目,就 ...

  9. 解决ListView异步加载图片错乱问题 .

    发一个异步图片加载控件.网上也有大把的异步网络加载图片的控件,但是有一个问题,异步加载会造成列表中的图片混乱,因为列表的每一项的View都可能被重用,异步加载的时候多个异步线程引用到了同一个View将 ...

随机推荐

  1. druid 参数配置详解

    druid 参数配置详解 */--> druid 参数配置详解 Table of Contents 1. 初始化连接 2. 参数配置及说明 3. 注意事项 3.1. 底层连接 3.2. 空闲检查 ...

  2. mybatis一对多映射【班级与学生】

    1)如图 2)创建grades.sql和students.sql drop table students; drop table grades; create table grades( gid in ...

  3. 语法错误 : 缺少“;”(在“<”的前面)

    该错误有可能是由错误所指行“<”附近的某个类型忘记#include <>所造成的

  4. 三分钟读懂TT猫分布式、微服务和集群之路 (转)

    http://www.cnblogs.com/smallSevens/p/7501932.html 针对新手入门的普及,有过大型网站技术架构牛人路过,别耽误浪费了时间,阅读之前,请确保有一定的网络基础 ...

  5. Linux 查看修改SWAP大小

    1  查看swap 空间大小(总计):     # free -m          默认单位为k, -m 单位为M                total       used       fre ...

  6. 35 个最好用 Vue 开源库

    2018年度 35 个最好用 Vue 开源库 在本文中,我们将推荐一些非常好用的 Vue 相关的开源项目.无论是开发新手还是经验丰富的老手,我们都喜欢开源软件包.对于开发者来说,如果没有这些开源软件包 ...

  7. 二、windows下搭建vue开发环境+IIS部署

    有时我们的服务器并不一定是node,也许是IIS,这样我们就需要把工程构建出来,与IIS集成. 构建该项目的命令如下 cnpm run build 将dist文件夹拷贝出来,放到IIS的发布目录,在浏 ...

  8. vue router 报错: Uncaught (in promise) NavigationDuplicated {_name:""NavigationDuplicated"... 的解决方法

    参考资料:https://blog.csdn.net/zy21131437/article/details/99548983

  9. flask的cookies操作

    from flask import Flask,request,Response app = Flask(__name__) @app.route('/') def hello_world(): re ...

  10. Linux常用安装配置

    一.创建.删除.分组 创建用户 命令:useradd  用户名 或    adduser 用户名 注意:只有root用户才能创建新用户 例如,创建一个名为zhangsan的用户 使用passwd命令为 ...