ASP.NET MVC 如何向同一个控制器的另一个Action 传送当前视图模型对象?

我的问题是这样的:
当前[控制器C]的一个方法[ActionA] 从数据库中通过特定条件查询并排序 得到的结果填充进[视图模型ViewModelA] 并在[视图ViewA]中显示 形式比如是列表页
然后我想让上面这个[视图模型ViewModelA]用另外一种方式展示 比如UI界面变化 部分字段不显示等等
也就是把它当做参数送到[控制器C]的另外一个[ActionB] 在[ViewB]上显示 该怎么传?

网上搜索到的有2中办法 一个是向ActionB传数据库操作参数,再次取数,可数据已经取过了 再做一遍岂不是大大的浪费?
还有是把ViewModel对象数据保存到ViewBag里 再在ActionB里赋值给新的ViewModel 可为什么不能直接传ViewModel对象过去呢?

2个回答

RedirectToAction(传模型)

也可以用ViewBag

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Asp.Net MVC(理解模型、视图和控制器)
1)对于一个MVC项目,一个URL并不意味着一个页面 当你创建一个传统的ASP.NET Web窗体应用程序,或者是一个动态服务器页面(ASP)应用程序,在URL与页面之间存在一对一的对应。如果你请求服务器上的一个名为SomePage.aspx的页面,那么最好在磁盘上有一个SomePage.aspx页面。如果SomePage.aspx文件并不存在,你将会获得一个丑陋的404-页面不存在错误。 当
.NET MVC 在action中,过滤器中,或视图中,如何分别获取 当前请求的 控制器/视图/区域 的名字
1) 过滤器中的: public class CMSAttribute : FilterAttribute, IAuthorizationFilter { public void OnAuthorization(AuthorizationContext filterContext) { var controllerName
ASP.NET MVC控制器与控制器间互相调用并且传参数
当多个action需要调用并且传递参数时:     public ActionResult getAllMenu(int i) {             ManagerMenu managerMenu = new ManagerMenu();             string str_json = string.Empty;             List listManagerM
asp.net mvc在一个控制器中返回另外一个控制器的视图
调用其他控制器返回result:    ReflectedControllerDescriptor RefControllerDescriptor = new ReflectedControllerDescriptor(typeof(AnotherController));                         ActionDescriptor Actescriptor =
asp.net MVC前台View页面向后台Controller控制器传递数据的几种方式
上一篇文章讲解了后台控制器如何向前台页面传递数据,今天就接着为大家讲解前台View页面向后台Controller控制器传递数据的几种方式。在此声明,这几种方式是我在实际使用过程中遇到并总结的,如果那个地方说的不对或有不足之处,欢迎各位指出并给出建设性意见、共同学习。 1、异步方式 在实际项目开发中,我们经常需要异步获取一些信息,如用户是否登陆、用户状态、用户类型等内容。我们不可能再通过按钮之类
Asp.net mvc 动作方法中 调用 另一个控制器的动作方法
public ActionResult 动作方法() { var otherController = DependencyResolver.Current.GetService<另一个控制器的类名>(); var result = otherController.另一个动作方法(); return result; }
MVC 在Action中,过滤器中,或视图中,获取当前请求的 控制器/视图/区域的名字及跳转
MVC 在Action中或过滤器中或视图中获取当前请求的控制器/视图/区域的名字 1)过滤器中: public class CMSAttribute : FilterAttribute, IAuthorizationFilter {  public void OnAuthorization(AuthorizationContext filterContext)
ASP.NET MVC3中Controller与View之间的数据传递总结
在ASP.NET MVC中,经常会在Controller与View之间传递数据,因此,熟练、灵活的掌握这两层之间的数据传递方法就非常重要。本文从两个方面进行探讨: 1 Controller向View传递数据 2 View向Controller传递数据   一、Controller向View传递数据 1.       使用ViewData传递数据 我们
MVC控制器与视图传递数据的几种方式
1.后台传值: 1 public class DataController : Controller 2 { 3 // GET: Data 4 public ActionResult Index() 5 { 6 //1 ViewData传值 7 ViewData[&quot;na...
MVC中如何获取当前action、controller
 1、在controller中获取 RouteData.Values["controller"] RouteData.Values["action"]   2、在视图中获取 ViewContext.RouteData.Values["controller"] ViewContext.RouteData.Values["action"]   3、
ASP.Net MVC Action重定向跳出Controller和Area
ASP.Net MVC 重定向
第2章 控制器 第3章 视图(强类型视图,视图模型:(下拉列表使用)、Razor 视图引擎、布局、Html.Partial与Html.Action)
一、控制器和视图 控制器:负责响应用户输入,并且在响应时修改模型Model public string Browse(string genre) { //字符串转成Html编码字符串 string message = HttpUtility.HtmlEncode(&quot;Strore/Browse,genre&quot;+ge
ASP.NET MVC view与controller传值方式
1: ViewData传值方式ViewData的生命周期和View相同, 只对当前View有效.   ViewData["zd"] = dfdfd2:TempData传值方式   可以跨Action传递   TempData的数据至多只能经过一次Controller传递, 并且每
ASP.NET MVC 不同命名空间下相同Action的处理
不同命名空间下相同Action,给路由设置了命名空间,但还是去找了其他的Controller,后来用RouteDebugger发现区域里面的路由规则都加上了 UseNamespaceFallback=false; routes.MapRoute("Default", "{controller}/{action}/{id}",                 new { controll
【MVC】获取项目中所有的控制器-试图
在C#中,实现动态获取类和方法主要通过反射来实现,要引用System.Reflection。 方法一: public ActionResult GetControllerAndAction() { //创建控制器类型列表 List controllerTypes = new List();
Asp.Net MVC控制器中Action的返回值类型
ActionResult及其常用子类的用法。
.net mvc 利用反射获取Controller中Action和注解
1、获取控制器所有Action: Type t = typeof(StatController);//StatController是指定控制器的名称 System.Reflection.MethodInfo[] ControllerMethods = t.GetMethods(); StringBuilder methodsNameAppend =
ASP.NET MVC从视图传递多个模型到Controller
 ASP.NET MVC从视图传递多个模型到Controller 从后台组织好数据然后传递到页面倒是水到渠成很方便,因为MVC自身就将这样的需求内建到了这个系统中。我只需要在后台组织好一个List 或IEnumerable类型的变量,将需要传递的数据模型扔进去便可。   比如这里我们向视图返回5条product信息在页面进行展示,仅仅是返回这么简单。   然后在页面
ASP.NET MVC 5通过viewdata 向视图传递多个对象
在controller查询到的数据是: public ActionResult Index() { var products = GetTopSellingProducts(1); var genres = storeDB.Genres.ToList(); ViewData["IndexProducts"]
ASP.NET MVC程序中动态修改form的Action值
在练习ASP.NET MVC时,为了实现一个小功能,POST数据至服务器执行时,需要动态修改form的action值。 下面Insus.NET列举一个例子来演示它。让它简单,明白易了解。 你可以在控制器中,创建3个操作action:   标记1是实现视图,而标记2与3是为form的action。其中Isus.NET有使用ContentResult来替代Response.
MVC页面不同控制器下的方法调用同一个后台函数
尤其是在多语言开发当中,切换语言的时候很有用。关键点就是要找到路径。 比如,我有个_LoginPartial.cshtml,这个页面是网页的公用部分,自己开发的网站,每个页面都会加载这一部分内容。 我在_LoginPartial.cshtml放置了两个radio用于语言切换,我想在点击radio时调用HomeController控制器下的ChangeLanguage()方法,实现语言切换。
ASP.NET在MVC控制器中获取Form表单值的方法
ASP.NET在MVC控制器中获取Form表单值的方法 在网站开发中我们经常需要用到表单,那么,在前台页面的表单中提交到后台控制器后,后台控制器如何接收表单提交过来的数据呢?下面我们介绍几种常用的方法。 我们先看看前台页面,这里我们用一个用户名和密码的表单来作为前台页面。 首先,我们新建一个MVC项目,然后添加一个控制器,UserInfoController;在控制器的默认方
MVC 5使用TempData(对象)跨视图传递数据
经过一系列显示数据的练习: 《MVC 5使用ViewData(对象)显示数据》http://www.cnblogs.com/insus/p/3377178.html 《MVC 5使用ViewData(模型)显示数据》http://www.cnblogs.com/insus/p/3377217.html 《MVC 5使用ViewBag(对象)显示数据》http://www.cnblogs.co
asp.net 过滤器获取action,controller,参数,浏览器版本等
string browser = filterContext.HttpContext.Request.Browser.Browser;//获取浏览器名称 string version = filterContext.HttpContext.Request.Browser.Version;//获取浏览器版本 string controller = filterContext.Ro
MVC 各种传值方式 ASP.NET MVC view与controller传值方式
MVC 各种传值方式 ViewData传值. HomeController.cs Co de: public ActionResult Index() {       ViewData["Title" ] = "Home Page" ;      ViewData["Message" ] = "Welcome to ASP.NET MVC!" ;      return Vi
ASP.NET MVC Controller向View传值的几种方式
上几篇博文提到MVC和WebForm的区别,主要是MVC的Controller和View将传统的WebForm的窗体和后台代码做了解耦,这篇博文简单介绍一下在MVC中Controller向View是如何传值的。       有点MVC基础的都知道,Controller向View传值主要有四种途径,下面将一一介绍。         1)ViewBag                  2)V
控制器向视图传递数据的3种方式
仅供自己学习用: 在ASP.NET MVC中,控制器和视图之间的数据传递包括两个方向: 将控制器设置的数据传递到视图中,在视图中显示数据;将视图中的数据传递到控制器 中,在控制器中读取、处理数据。 今天先给大家讲讲控制器向视图传递数据: 控制器向视图传递数据ASP.NET框架中可以通过3种方式将数据从控制器传递到视图。 1. 使用 ViewData 传递数据在AS
向前端传list集合变成js中的对象
Controller 里的代码        List categoryIds =new ArrayList List caterotyList =promotionThemeVO.getCategoryRelationList(); categoryIds =CommonUtil.getValueList(caterotyList,"relationId"); request.set
ASP.NET MVC 后台控制器向前台传递数据的几种方式
ASP.NET MVC 后台控制器向前台传递数据的几种方式
ASP.NET MVC 视图与模型绑定
在ASP.NET MVC 中视图与模型是可以直接绑定的,这样就绕过了Controller。这种应用场景主要是做信息的提交,比如用户的注册,订单的提交等等。在蒋金楠的《ASP.NET MVC 5框架揭秘》中,他提出MVC视图与模型直接绑定容易带来“混乱”,建议在开发过程中对视图,模型及控制器的交互做好约定,或者使用MVP模式。MVP模式杜绝了视图与模型的直接交互,从根本上解决这个问题。今天我写了一个
MVC中跳转到其他页面,并传参数
<br /> return RedirectToAction("MemberManager", "Shop", new { id = Session["shopid"] });<br /> MemberManager:页面的Action;Shop:Controller名称;id:要传的参数名;Session["shopid"]:要传的参数!
Asp.Net Mvc 控制器与视图的数据传递
数据传递也就是控制器和视图之间的交互,比如在视图中提交的数据,在控制器怎么获取,或者控制器从业务层获得一些数据,怎么传递到视图中,让视图显示在客户端呢?带着这些疑问,我们接着看。。          下面分别讲解asp.net mvc框架中有三种数据传递方式,分别是:ViewData,TempData,Model           ViewData:只能在一个动作方法中设置,在相关视图页
MVC 从控制器跳转到视图的方法 |Model传值
1 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace MvcApp.Controllers { public class HomeController : Controller {
如何在ASP.NET MVC 中获取当前URL、controller、action
一、URL的获取很简单,ASP.NET通用:  【1】获取 完整url (协议名+域名+虚拟目录名+文件名+参数)  string url=Request.Url.ToString();  【2】获取 虚拟目录名+页面名+参数:  string url=Request.RawUrl; (或 string url=Request.Url.PathAndQuery;)
.NET MVC 获取 当前请求的 控制器/视图/区域 的名字
1)过滤器中的: [csharp] view plaincopyprint? public class CMSAttribute : FilterAttribute, IAuthorizationFilter   {       public void OnAuthorization(AuthorizationContext filterCo
ASP.NET MVC 中 如何将同一个form post到不同的action
ASP.NET MVC 中 如何将同一个form post到不同的action
mvc 控制器中 return ActionResult 的注意
1、控制器中 如果要返回Json格式结果   ,如果程序中得到的是一个对象 用 return Json();  返回序列化的对象    网路请求中返回的是:[{"Name":"张三","Age":15},{"Name":"李四","Age":16}] 但是 ,如果是手拼的字符串格式的json【已经是json格式】 就要用return content(); 返回    而不能用return j
.NET MVC框架中控制器接收参数的四种方式
1.通过路由中的配置的参数名字直接接收(要求:两者同名) routes.MapRoute(                 name: "Default",                 url: "{controller}/{action}/{id}",                 defaults: new { controller = "Stu", action = "Inde
ASP.NET MVC 5 - 将数据从控制器传递给视图--ViewBag方式注意点
ViewBag的使用     ViewBag主要用于从控制器往视图中传输少量数据。ViewBag是动态类型,使用时直接添加属性赋值即可 ViewBag.parameter。直接上代码:控制器中代码:        public ActionResult IndexView(string parameter)        {            ViewBag.parameter = param...
ASP.NET MVC ajax 提交列表到 Action
1.  Action 的代码 2.  以 Json 的方式提交 3.  以字符串的方式提交
相关热词 c# mvc 上传 文件 c#扫描软件 c# 文字打印左右反转 c#byte转换成数字 c# 音量调节组件 c# wpf 界面 c# 读取证书文件的内容 c# 单例模式 工厂模式 c# dgv 树结构 c#继承 反序列化