首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用视图模型和操作链接时,无法在mvc4中应用分页

在MVC4中,使用视图模型和操作链接时,可以通过以下步骤来实现分页功能:

  1. 创建一个视图模型(ViewModel)来表示需要展示的数据和分页信息。视图模型通常包含两部分:数据列表和分页相关的属性。
  2. 在控制器中,查询数据库或其他数据源,获取需要展示的数据,并根据分页参数进行分页处理。将分页后的数据赋值给视图模型的数据列表属性。
  3. 在视图中,使用分页相关的属性来生成分页链接。可以使用HTML辅助方法(如Html.ActionLink)来生成链接,或者手动构建链接。
  4. 在控制器中,根据用户点击的分页链接,获取对应的页码,并重新查询数据,将分页后的数据赋值给视图模型的数据列表属性。
  5. 在视图中,根据视图模型的数据列表属性,展示数据列表,并根据分页相关的属性生成分页链接。

以下是一个示例代码:

  1. 创建视图模型(ViewModel):
代码语言:txt
复制
public class MyViewModel
{
    public List<MyData> DataList { get; set; }
    public int CurrentPage { get; set; }
    public int TotalPages { get; set; }
}
  1. 在控制器中查询数据并进行分页处理:
代码语言:txt
复制
public ActionResult Index(int page = 1)
{
    int pageSize = 10; // 每页显示的数据条数
    int totalRecords = // 查询总记录数的方法,例如从数据库中查询
    int totalPages = (int)Math.Ceiling((double)totalRecords / pageSize);

    List<MyData> dataList = // 查询数据的方法,例如从数据库中查询

    MyViewModel viewModel = new MyViewModel
    {
        DataList = dataList.Skip((page - 1) * pageSize).Take(pageSize).ToList(),
        CurrentPage = page,
        TotalPages = totalPages
    };

    return View(viewModel);
}
  1. 在视图中生成分页链接:
代码语言:txt
复制
@for (int i = 1; i <= Model.TotalPages; i++)
{
    @Html.ActionLink(i.ToString(), "Index", new { page = i })
}
  1. 在控制器中处理分页链接的点击:
代码语言:txt
复制
public ActionResult Index(int page = 1)
{
    // 同上,查询数据并进行分页处理
    // ...

    MyViewModel viewModel = new MyViewModel
    {
        // 同上,赋值给视图模型的属性
        // ...
    };

    return View(viewModel);
}
  1. 在视图中展示数据列表和分页链接:
代码语言:txt
复制
@foreach (var item in Model.DataList)
{
    // 展示数据列表的代码
    // ...
}

<div>
    @for (int i = 1; i <= Model.TotalPages; i++)
    {
        @Html.ActionLink(i.ToString(), "Index", new { page = i })
    }
</div>

这样,当用户点击分页链接时,会重新请求控制器的Index方法,并传递对应的页码参数,控制器会重新查询数据并进行分页处理,最终在视图中展示分页后的数据列表和更新后的分页链接。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Asp.Net MVC4入门指南(5):从控制器访问数据模型

本节,您将创建一个新的MoviesController类,并在这个Controller类里编写代码来取得电影数据,并使用视图模板将数据展示浏览器里。...ASP.NET MVC 4 自动创建 CRUD (创建、 读取、 更新和删除) 操作方法,相关的视图文件(CRUD 自动创建的操作方法视图文件被称为基础结构文件)。...强类型模型 @model 关键字 本系列之前的教程,您看到了使用ViewBag对象,从控制器传递数据或对象给视图模板。ViewBag是一个动态的对象,提供了方便的后期绑定方法将信息传递给视图。...当创建操作方法视图, Visual Studio 的基础结构机制使用了MoviesController类视图模板。...创建和编辑方法还有视图模板都在传递电影的强类型模型对象。 看一下Index.cshtml视图模版MoviesController.cs的Index 方法。

4.2K50

Asp.Net MVC4入门指南(10):第三方控件Studio for ASP.NET MVC4 工具应用

新增国际化主题(Metro) MVC4 模板自动增强MVC Scaffolding模板,将会为您应用程序的增删改查(CRUD)操作生成默认的模板文件,这些生成的文件为您的工程构建了起始的工程文件目录结构...开始使用 使用ComponentOne Studio for ASP.NET制作MVC4应用程序,首先要做的是安装Studio for ASP.NET。...DoneAt { get; set; } } } 创建控制器视图 添加控制器视图之前,编译项目。这将使Scaffolding模板识别新增的模型。...Scaffolding将会自动生成控制器增删改查应用程序所需要的所有视图。...创建视图中您会发现展现在眼前的是标准的EditorFor Helpers。然而我们已经工程添加了自定义编辑模板。所以如果使用日期或数值等类型,Scaffolding模板会自动生成编辑器。

1.5K90

自学MVC看这里——全网最全ASP.NET MVC 教程汇总

MVC(创建一个任务列表应用程序) - Part.1 Asp.Net MVC(理解模型视图控制器) - Part.2 ASP.NET MVC中使用View Model分离领域模型 探秘ASP.NET...Asp.Net MVC4入门指南(9):查询详细信息删除记录 Asp.Net MVC4入门指南(8):给数据模型添加校验器 Asp.Net MVC4入门指南(7):给电影表模型添加新字段 Asp.Net...MVC4入门指南(6):验证编辑方法编辑视图 Asp.Net MVC4入门指南(5):从控制器访问数据模型 Asp.Net MVC4入门指南(4):添加一个模型 Asp.Net MVC4入门指南(3...入门教程五[Control与View交互] 无废话MVC入门教程六[Model的验证规则] 无废话MVC入门教程七[Control中使用AOP] 无废话MVC入门教程八[MvcPager分页控件的使用...为ASP.NET MVC扩展异步Action功能(上) 为ASP.NET MVC扩展异步Action功能(下) 其他高级功能 使用Model Binder绑定Action参数字段的取舍问题 ASP.NET

9.6K81

Asp.Net MVC4入门指南(9):查询详细信息删除记录

本教程,您将查看自动生成的DetailsDelete方法。 查询详细信息删除记录 打开Movie控制器并查看Details方法。...如果使用GET 请求执行删除操作(或者执行编辑操作,创建操作或者更改数据的任何其它操作) 开辟了一个安全漏洞。...这是框架代码在前面的示例中所使用的方法。然而,这就带来了一个小问题: ASP.NET 将部分的 URL按名称映射到操作方法,如果您重命名了方法,通常Routing将无法找到该方法。...您可以使用此 Web Platform Installer 链接启用IIS服务器的 ASP.NET 应用程序的设置。...以上的查询详细信息删除记录示例是为了帮助大家更好的掌握MVC的知识,进行MVC开发使用开发工具也可以大大提高工作效率。

1.9K80

Asp.Net MVC4入门指南(7):给电影表模型添加新字段

本节,您将使用Entity Framework Code First来实现模型类上的操作。从而使得这些操作和变更,可以应用到数据库。...如果您收到表已经存在并且无法创建的错误,可能是因为您已经删除了数据库,并且执行update-database之前,您运行了应用程序。...你现在看到此错误,因为应用程序,最新的Movie模型现有的数据库Movie表的Schema不同。(数据库表,没有Rating列。)...新的电影,包括评级,将显示电影列表: ? 此外您也应该把Rating 字段添加到编辑、 详细信息 SearchIndex 的视图模板。...本节,您看到了如何修改模型对象并始终保持其和数据库Schema的同步。您还学习了使用填充示例数据来创建新数据库的例子,您可以反复尝试。

2K100

ASP.NET MVC编程——错误处理与日记

ASP.NET MVC的错误处理应考虑到这几个方面:模型绑定期间发生的错误,未能路由到指定操作,针对控制器的错误处理。...使用配置文件可以帮助我们处理异常,但是不够灵活全面;使用HandleErrorAttribute、自定义错误过滤器或重写控制器OnException方法只能解决针对控制器的错误,无法解决模型绑定期间发生的错误...有时候需要多种方法配合使用捕获错误的地方,可以将有用的信息记录下来,便于我们查出引起问题的原因纠正错误。...注意:不论defaultRedirectredirect都配置为指定的路径,例如上述配置控制器error,控制器操作为error1error2,相应地错误页为Error1.cshtmlError2...),View="KeyNotFound")] public ActionResult Index() { ...... } 还可以使用自定义的错误过滤器,并将其应用到控制器或操作上。

1.5K60

Asp.Net MVC4入门指南(2):添加一个控制器

基于MVC模式的应用程序包含: · Models: 表示该应用程序的数据并使用验证逻辑来强制实施业务规则的数据类。 · Views: 应用程序动态生成 HTML所使用的模板文件。...· Controllers: 处理浏览器的请求,取得数据模型,然后指定要响应浏览器请求的视图模板。 本系列教程,我们将覆盖所有这些概念,并告诉您如何使用它们来构建应用程序。...让我们从浏览器调用它。运行应用程序(按F5或CTRL + F5)。浏览器的地址栏输入路径“HelloWorld“。...需要注意的是,示例代码使用了C#语言的可选参数功能,numTimes参数不传值,默认值为1。...在这两个例子,控制器一直在做着MVC“VC”部分的职能。 也就是视图控制器的工作。该控制器直接返回HTML内容。通常情况下,您不会让控制器直接返回HTML,因为这样代码会变得非常的繁琐。

97770

Asp.Net MVC4入门指南(6):验证编辑方法编辑视图

本节,您将开始修改为电影控制器所新加的操作方法视图。然后,您将添加一个自定义的搜索页。 浏览器地址栏里追加/Movies, 浏览到Movies页面。并进入编辑(Edit)页面。...运行该应用程序,然后浏览URL,/Movies。单击Edit链接浏览器查看页面源代码。... GET 方法修改数据还违反了 HTTP 的最佳做法Rest架构模式, GET 请求不应更改应用程序的状态。...换句话说,执行 GET 操作,应该是一种安全的操作,没有任何副作用,不会修改您持久化的数据。 添加一个搜索方法搜索视图 本节,您将添加一个搜索电影流派或名称的SearchIndex操作方法。...在这一节您修改了CRUD 操作方法框架所生成的视图。您创建了一个搜索操作方法视图,让用户可以搜索电影标题流派。

4.2K100

Asp.Net MVC4入门指南(1): 入门介绍

Visual Studio的一个顶部工具栏显示了各种不同的选项来供您使用IDE还有一个菜单,提供了另一种方式来执行任务。...新的 ASP.NET MVC 4 项目对话框,选择互联网应用程序。使用Razor作为默认视图引擎。 ? 单击确定。...这是因为 localhost总是会被解析为您自己的本地计算机,在这种情况下,这正是您你刚刚建立的应用程序。当Visual Studio运行一个Web工程,会使用一个随机端口的Web服务。...它还提供了注册登录功能,并提供了FacebookTwitter的链接。接下来的一步是修改此默认应用程序,并了解一些关于ASP.NET MVC的知识。关闭浏览器,让我们修改一些源代码吧。...MVC 开发工具: 在学习使用MVC进行开发,还可以利用一些开发工具,很大程度上减轻代码量。

2.1K60

Asp.Net MVC4入门指南(3):添加一个视图

本节,您需要修改HelloWorldController类,从而使用视图模板文件,干净优雅的封装生成返回到客户端浏览器HTML的过程。...您将创建一个视图模板文件,其中使用了ASP.NET MVC 3所引入的Razor视图引擎。...用Razor编写一个视图模板文件,将所需的字符键盘敲击数量降到了最低,并实现了快速,流畅的编码工作流程。 当前控制器类的Index方法返回了一个硬编码的字符串。...该项目中,您可以使用的Index方法来添加一个视图模板。要做到这一点,Index方法单击鼠标右键,然后单击“ 添加视图“。 ? 出现添加视图对话框。保留缺省值,并单击添加按钮: ?... image.png 如果您正在使用Visual Studio 2012,解决方案资源管理器,右键单击Index.cshtml文件,并选择“ 页面检查器查看“。

1K70

小编个人简介

熟练使用SQLServer,MySql等关系型数据库,熟悉连接查询、触发器、事务、存储过程(高效分页)等,熟练使用常用T-SQL语句进行CRUD操作。...熟悉MV0、Spring.Net、Log4Net、Json.Net、Memcache等开源项目;熟练使用Spring.Net实现IoCDI,熟悉TT模板。...熟悉HTTP协议及其请求过程,熟练使用开发人员工具监控报文数据及调试;深刻理解Web开发的请求、处理、响应模型原理,理解Asp.Net页面生命周期,熟悉Http协议和基于管道的面向切面编程,能够不使用ASP.NET...熟悉项目开发流程,具备良好的面向对象思想,较好的代码规范,习惯添加注释;熟练使用Reflector反编译工具研究学习,并从源代码层次深入学习了Http请求的处理流程以及MVC4的内部执行过程;了解Unity...,简化代码; 使用Spring.Net技术将项目各个层之间进行解耦 使用Linq语句利用Lambda表达式配合EF实例进行基本信息的增删改查,同时封装扩展方法,实现数据分页效果 利用Ajax实现购物车的商品添加与删除及异步文件上传技术

1.8K30

Asp.Net MVC4入门指南(8):给数据模型添加校验器

本节中将会给Movie模型添加验证逻辑。并且确保这些验证规则在用户创建或编辑电影被执行。...您可以一个地方 (模型类) 以声明的方式指定验证规则,这个规则会在应用程序的任何地方执行。 让我们看看您如何在本电影应用程序使用此验证支持。...本教程之前所生成的控制器视图中,Movie模型类的属性上所指定的验证规则一样可以自动适用。...您可能已经注意到了Title Genre属性,字段输入文本或者删除文本,是不会执行所需的验证属性的,直到您提交表单 (点Create按钮)才执行。...它用来为以上两个操作方法来显示初始的form,同时验证出错来重新显示视图。 请注意,代码如何使用Html.EditorFor helper 输出为Movie的每个属性的元素。

4.6K100

ASP.NET MVC编程——模型

显示模型绑定 使用UpdateModelTryUpdateModel显示绑定模型,不会检验未绑定字段。...使用UpdateModel方法绑定模型,如果绑定失败就会抛异常,而TryUpdateModel不会。...清空模型绑定状态 使用ModelState.Clear();清空模型绑定状态以后,验证失败的信息就不会显示到视图上,即使视图使用@Html.ValidationSummary()方法。...当操作带有参数,MVC框架使用模型绑定器(默认的或自定义的)Http请求查找数据,用于构建控制器操作的参数列表。 验证发生的时间 模型验证是操作执行之前完成的。...当模型绑定器使用新值对模型属性更新后,会利用当前模型元数据获得模型验证器,模型验证器会找到所有施加于模型属性的特性并执行验证逻辑,然后模型绑定器会捕获所有失败的验证规则,并将它们放入模型状态

2.4K80

ASP.NET MVC编程——视图

每一行前面加上“@:” 5)使用注释 使用@**@将要注释的部分包起来 6)用@@页面上显示@ @using 一个View引入此页所需程序集的命名空间。...视图放在Views文件夹下 Views文件夹的子文件夹名称为控制器名称 视图名称可以是控制器操作方法名称也可以不是,若不是控制器操作方法名称,控制器返回视图要指定视图名。..._Layout.cshtml视图文件,_Layout.cshtml@RenderSection来加载FooterSectionHeaderSection节,而这个节定义_LayoutOther.cshtml...js文件,那么可以使用_LayoutOther.cshtml的视图中定义section 节来加载只有此页面使用的js文件,而把公共的js文件放在_Layout.cshtml视图文件 例如Index.cshtml...TestFrom() { return PartialView("TestPy"); } 或者视图使用@{Html.RenderAction("TestPy");},注意这种内联视图

3K100

Pro ASP.NET MVC –第五章 使用Razor「建议收藏」

Razor是微软MVC3引入的视图引擎的名字,MVC4对其进行了改进(尽管改动非常小)。视图引擎处理ASP.NET内容、寻找指令,典型地用于插入动态数据并输出到浏览器。...我们的例子,@model语句声明将传递给视图使用的来自于行为方法的模型对象。然后通过@Model,我们就可以调用模型对象的方法,字段属性。...视图 使用视图模型对象,把其内容呈现给用户 更改视图模型对象的任何方法 本书后续的章节,我们将不断的回顾上表所述的规则。...如同C#一样,你使用}结束代码片段。 Razor代码片段,你可以通过HTMLRazor表达式使用HTML元素视图中的数据值。...创建视图,Visual studio并没有提供数组集合的支持,因此你需要手动设置模型类的类型 然后在生成的视图中,你可以看到model的类型为:@model MvcRazor.Models.Product

2.9K20

【Rust日报】2022-01-14 使用 crosvm Rust 实现应用程序操作系统虚拟化

使用 crosvm Rust 实现应用程序操作系统虚拟化 我们现在可以通过修改 crosvm 来虚拟化 Linux 的 GUI 应用程序操作系统,这是一个基于 rust 的出色开源 VMM,...克隆存储库: $ git clone https://github.com/Openw3b/demo-openvmm-1 && cd demo-openvmm-1 2.如果你想要demo的音频,修改主机上的...pulseaudio server config以接受来自VM的TCP连接并使用 systemctl restart pulseaudio 重新启动它 load-module module-native-protocol-tcp.../scripts/quick_start vlc ~/Downloads/bunny.mp4 打开主机上的任何媒体文件都会在 VM 内的 VLC 打开它并且音频播放正常 5、运行 Ubuntu 桌面...这种情况激发了 MLIR 编译器框架的创建,该框架使编译器工程师能够设计集成捕获特定抽象的 IR。

89720

Asp.Net MVC4入门指南(4):添加一个模型

本节,您将添加一些类,这些类用于管理数据库的电影。这些类是ASP.NET MVC 应用程序的"模型(Model)"。...您将使用.NET Framework 数据访问技术Entity Framework,来定义使用这些模型类。Entity Framework(通常称为 EF) 是支持代码优先的开发模式。...添加模型解决方案资源管理器,右键单击模型文件夹,选择添加,然后选择类. ? 输入Class名 "Movie"。...通过应用程序的Web.config文件添加数据库连接信息来指定连接到那个数据库。 打开应用程序根目录的Web.config文件。(不是View文件夹下的Web.config文件。)...有了本节如何在MVC添加模型知识的学习,大家是不是也跃跃欲试想要开始MVC的开发?开发还可以借助一些开发工具助力开发过程。

1.5K100

ASP.NET MVC编程——控制器

每一个请求都会经过控制器处理,控制器的每个方法被称为控制器操作,它处理具体的请求。 1操作输入参数 控制器的操作的输入参数可以是内置类型也可以是自定义类型。...视图通过两种方式可以拿到数据: 1)通过控制器操作返回的结果(控制器返回结果是数据视图的结合。 2)将结果赋给控制器属性并在View中使用这些属性。...Contact.cshtml @ViewData["Field"] Index.cshtml视图中调用 @Html.Action("TestViewData") 第二种方式,弱型别,使用ViewData.Model...使用异步控制器的目的: 异步控制器操作也要等待任务直至处理完,所以处理速度不比同步方法快,其主要作用是高效地利用服务器资源。...注意如果控制器使用HttpPost特性修饰,而客户端发起的是get请求,也会认为是无法找到操作

2.1K90

ASP.NET MVC编程——验证、授权与安全

任何用户数据来自其他系统的数据都要经过检验。 满足需求的情况下,尽量缩小账户的权限。 减少暴露的操作数量操作参数。 关闭服务器不需要的功能。...Html隐藏域存储用户令牌,令牌可以存储Session里或者cookie里 2)视图表单中使用@Html.AntiForgeryToken(),控制器操作上添加属性[ValidateAntiForgeryToken...,每次执行控制器操作前,都会验证隐藏栏位浏览器cookie的值是否相同,只有相同才允许执行控制器操作。...,浏览器无法访问 2)在编写代码为每个cookie单独设置 Response.Cookies["cok"].Value = Guid.NewGuid().ToString(); Response.Cookies...UpdateModel或TryUpdateModel 3)使用ViewModel,明确规定View使用的数据模型 4.5开放重定向 防御方法: 使用Url.IsLocalUrl检测是否为本地url 4.6

3.1K60
领券