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

ASP.Net MVC在回发之间保持动作参数

ASP.NET MVC 在回发之间保持动作参数的方式有多种,下面将介绍其中几种常用的方法:

  1. 使用视图模型 (ViewModels)

在使用 ASP.NET MVC 创建视图时,可以将数据模型(通常是由 Entity Framework 生成)与 HTML 分开,使用视图模型 (ViewModels)。视图模型是用于填充视图状态的数据模型。通过在 ActionResult 类中返回一个包含视图模型的对象,可以在视图之间保持动作参数。

例:

代码语言:csharp
复制

public ActionResult Edit(Product product)

{

代码语言:txt
复制
// 从数据库获取数据或将数据传递给模型
代码语言:txt
复制
var viewModel = new ProductEditViewModel
代码语言:txt
复制
{
代码语言:txt
复制
    ProductName = product.ProductName,
代码语言:txt
复制
    Price = product.Price,
代码语言:txt
复制
    Description = product.Description
代码语言:txt
复制
};
代码语言:txt
复制
return View(viewModel);

}

public ActionResult Update(ProductEditViewModel viewModel)

{

代码语言:txt
复制
// 更新数据库中的产品数据或更新视图模型状态
代码语言:txt
复制
var productRepository = new ProductRepository();
代码语言:txt
复制
var dbProduct = productRepository.GetProduct(viewModel.Id);
代码语言:txt
复制
dbProduct.ProductName = viewModel.ProductName;
代码语言:txt
复制
dbProduct.Price = viewModel.Price;
代码语言:txt
复制
dbProduct.Description = viewModel.Description;
代码语言:txt
复制
// 调用 SaveChanges 方法保存更新后的数据
代码语言:txt
复制
productRepository.SaveChanges();
代码语言:txt
复制
// 跳转到之前的视图,但可以通过传递不同的视图模型返回不同的视
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

System.ArgumentException: 参数无效。配置中使用

关于同一个页面中使用Gridview控件的时候发现气updaeting事件无法被服务器所响应,看来它的错误报警然后查询了部分资料现在将整理的解决方法总结如下:点击update 事件无法响应原因出在参数无效...出于安全目的,此功能验证 调事件的参数是否来源于最初呈现这些事件的服务器控件。...异常详细信息: System.ArgumentException: 参数无效。...出于安全目的,此功能验证调事件的参数 是否来源于最初呈现这些事件的服务器控件。...值,事件时提示该错误,将下拉菜单初始Item值删除,绑定事件中添加Item项。

1.2K10

EntityFramework教程整理

ASP.NET MVC 重点教程一周年版 第十 请求Controller ASP.NET MVC 重点教程一周年版 第九 HtmlHelper ASP.NET MVC 重点教程一周年版 第八 Helper...ASP.NET MVC 重点教程一周年版 第四 向View传值 ASP.NET MVC 重点教程一周年版 第三 Controller与View ASP.NET MVC 重点教程一周年版 第二 UrlRouting...5 源代码及MVCContrib4pv5Asp.net Mvc Codeplex Preview 5 第三篇 实现Action参数传递繁杂类型 Asp.net Mvc Codeplex Preview...Asp.net Mvc Framework可以Controller中使用的Url.Action方法 Asp.net Mvc Framework.net 2.0/IIS6下运行,补全 Asp.net...中无法使用Castle的解决方案 我的一些ASP.NET MVC的开源项目 ASP.NET MVC File Management(文件管理) CHMVCMS(内容管理系统) CHOJ#(在线编译评判

1K60

ASP.NET Core 基础知识】--MVC框架--Models和数据绑定

ASP.NET Core MVC中,Models类是连接控制器(Controller)和视图(View)之间的桥梁,使得数据的传递更为灵活和高效。...控制器的动作方法可以直接接收参数,或者通过方法参数上使用 [FromBody]、[FromQuery]等特性来指定数据来源。...控制器的动作方法中,可以通过参数接收模型对象,并通过模型绑定器将请求数据映射到该模型对象中。 模型绑定器会自动尝试将请求数据与模型对象的属性进行匹配。...2.2 基本数据绑定 ASP.NET Core MVC中,基本数据绑定涉及将用户提交的数据映射到控制器的动作方法参数或直接映射到模型中。...ASP.NET Core MVC框架将负责在运行时将请求中的数据映射到指定的参数或模型对象中,使得开发人员可以方便地处理用户的输入。

18810

Asp.Net WebApi核心对象解析(一)

ASP.NET WebAPI使用HTTP方法,而不是URI路径,以此来选择动作。还可以使用MVC样式路由的WebAPI。...ASP.NET Web API中,一个控制器是处理HTTP请求的类。控制器的公共方法被称为动作方法或简单的动作。当Web API框架接收到一个请求,它请求路由到一个动作。...WebAPI路由时,已尽量注意与AspNet Mvc的路由发生冲突,这一点ASP.NET Web API中做了一个防范。     ...(3).路由模板其他占位符变量,诸如{ID},被映射到动作参数。    对于ASP.NET Web API的路由机制就讲解这么多,更多的内容大家可以自己去了解。...ASP.NET Web API框架支持从请求元素到操作方法参数的绑定。对于HTTP响应值转换成适当的HTTP响应消息正文。

4.3K70

Asp.net MVC 之 Contorllers(二)

取代URL重写 可读性、搜索引擎优化(SEO,search engine optimization)和程序处理 UR L的数量级之间做出权衡时,URL重写就可以闪亮登场了。...应用程序路由 按照设计,ASP.NET MVC 应用程序并没有依赖于物理页面。 ASP.NET MVC 中,用户请求代理资源(acting on resources)。...例如,一个纯粹的 REST 解决方案,是使用H TTP 谓词来表达行为动作(GET,POST,PUT和DELETE)和通过URL识别资源。...通过指定动作行为和资源可以自定义语法, ASP.NET MVC 中默认行为是使用自定义语法的 URLs。该语法是以 URL 模式的集合作为表现形式,也称为路由。...通常,大括号{}内的占位符被称为 URL 参数。只要 URL 参数是由常量或分隔符隔开,路由就可以有多个 URL 参数。正斜杠(/)字符作为路由各个部分之间的分隔符。

1.9K60

ASP.NET Core 2.0 建立规范的 REST API -- 预备知识

下面就是从客户端请求到应用程序的流图: ? 其中Kestrel可以作为一个独立进程自行托管, 也可以IIS里. 但是还是建议使用IIS或Nginx等作为反向代理服务器....ASP.NET Core项目里可以通过多种方式来创建Controller,当然最建议的方式还是通过继承AspNetCore.Mvc.Controller这个抽象类来建立Controller。...这个把Http请求绑定到参数的过程叫做实体绑定。 例如: ? 其中id参数是定义路由里的,而name参数路由里没有,但是仍然可以从查询参数中把name参数映射出来。...资源过滤器,授权过滤器后运行,管道其它动作之前,和管道动作都结束后运行。它可以实现缓存或由于性能原因执行短路操作。它在实体绑定之前运行,所以它也可以对影响实体绑定。...ASP.NET Core MVC 默认实现并使用JSON格式化,但也支持其它格式,这需要在startup里面注册。

1.6K00

这算是ASP.NET MVC的一个大BUG吗?

这是昨天一个同事遇到的问题,我觉得这是一个蛮大的问题,而且不像是ASP.NET MVC的设计者有意为之,换言之,这可能是ASP.NET MVC的一个Bug(不过也有可能是保持原始请求数据而作的妥协)。...该方法接受一个类型为DemoModel的参数,定义其中的逻辑非常简单:我们对该参数的三个属性略加修改后,将其作为Model呈现在对应的View中。...通过查看ASP.NET MVC框架自身的代码,我想这个问题的根源应该源于InputExtensions类型的InputHelper方法。...不过我还是觉得这样的设计有违MVC的基本原则,MVC处理请求的流程很清楚:客户端(浏览器)向定义Controller中的某个Action方法发送请求,Action方法处理这个请求,并呈现出相应的View...[你总不能显一个0,然后错误提示“你输入的不是数值类型”吧]

79480

ASP.NET Core 基础知识】--路由和请求处理--路由概念(一)

ASP.NET Core等框架中,路由系统会根据请求的URL和路由规则,确定执行哪个控制器的哪个动作方法来处理请求。...三、控制器和动作方法 3.1 控制器的角色和作用 控制器MVC(Model-View-Controller)架构中扮演着核心角色,负责接收用户的请求并协调相应的操作,以便正确呈现视图或执行其他逻辑。...视图选择: MVC架构中,控制器通常负责选择合适的视图进行呈现。它决定了用户将看到什么内容,将请求的结果传递给视图进行展示。...以下是控制器和动作方法的路由映射的基本概念: 控制器级别的路由映射: ASP.NET Core中,可以控制器类上使用[Route]特性为整个控制器指定路由模板。...public class MyController : Controller { // 限制age参数的值18到99之间 [HttpGet("Users/{age:range(18,99

19210

asp.net mvc实战-学习笔记(1)

Palermo Ben Scheirman Jimmy Bogard Asp.net mvc framework入门 这一章主要包括: 1 asp.net mvc框架的系统要求 2 运行第一个项目 3...命名空间中的所有东西的耦合过紧了 code-behind文件中没有任何希望做单元测试 page_load事件中有几种树来打印 虽然早前的asp,net版本存在一些缺点 但是asp.net和.net...mvc框架设计的目的是为了简化web form的复杂性 并保留asp.net管道的灵活性 Asp.net request管道的优势没有改变 Asp.net mvc通过模型,视图,控制器的设计模式来支持...asp.net应用程序 控制逻辑代码被封装在一个类里以减轻依赖性 视图就是只有HTML代码和controller提供的对象的页面, 事件生命周期不负存在 ViewState也不是必须的了 本章中...,我们将带您完成第一个asp.net mvc项目 完成这个项目后,您将为将来的更进一步的研究做好准备 本章 我们将建立一个新的asp.net mvc framework web应用程序 我们将梳理默认的应用程序并解释每一部分

49520

初识mvc

一、MVCASP.NET MVC基础概念 MVC是Model-View-Controller的缩写. MVC将应用程序划分为3大组件:模型\视图\控制器....ASP.NET MVC从2008年布1.0版以来,截至2014年ASP.NET MVC最新版本已经是5.0....ASP.NET MVC官网地址:http://www.asp.net/mvc 二、MVC三大组件的相互关系 控制器中可以直接调用视图和模型 视图中可以调用模型....Global.asax全局应用程序类中注册了默认路由(名称为Default),默认路由指定了Controller默认为Home,Action默认为Index,参数id为可选参数.所以URL地址中如果不输入...name=jack&age=20   解释:其中参数包括id、name和age三个 其他 视图文件中,有一个名称为Model属性,它指代的是从Action中传递的模型数据.为了使用模型数据,我们还需要在

1.1K10

ASP.Net Web Page深入探讨

后面带参数达到将参数传送给服务器,这种方式其实跟Get方式的Form是一样的 3、 Cookies:这是一种比较特殊的方式,通常用于用户身份的确认 二、ASP.Net简介 传统的服务器脚本语言,如ASP...LoadViewState 方法 处理数据 处理传入窗体数据,并相应地更新属性。请参阅处理数据。 注意 只有处理数据的控件参与此阶段。...Load 事件 (OnLoad 方法) 发送回更改通知 引发更改事件以响应当前和以前之间的状态更改。请参阅处理数据。 注意 只有引发回更改事件的控件参与此阶段。...请参阅捕获事件。 注意 只有处理事件的控件参与此阶段。...2) 子类的OnInit方法中先调用base.OnInit,这样来保证父类先执行Page_Load 5、 发送回更改通知 这个方法对应第3步的处理数据,如果处理数据返回True,页面框架就会调用此方法来触发数据更改的事件

2.1K70

2018 .NET开发者调查报告: .NET Core 是怎么样的状态

从人员的从业时间来看,.net 开发者多集中26-36 岁之间,占有比率66%,21-25岁的开发者只有17%,说明.net 平台上新的开发者的补充情况不容乐观,这也是很多人在抱怨.net 开发者难找的原因...Web开发框架的选择上80%以上的用户都选择使用MVC 架构,这也说明了如果你的项目还在使用Webform等老技术,请尽快升级改造为mvc,即将面临成为稀有物种, ORM框架选择方面 Dapper 的使用比率非常...回顾 16年前的ASP.NET 团队设计 ASP.NET 框架时,采用了ASP的大多数最佳实践,并在新框架中采用了这些做法。...在此过程中,他们还引入了许多新内容,如编译代码和托管代码、自动和服务器控件。ASP.NET Core 采用同样的套路演进。...这样一来,ASP.NET Core 会强制你编写更优质的代码,即默认强制实现关注点分离,当然你也可以通过自律实现此目标,自律的方式非常少数的。

80660
领券