应无所住,而生其心
排名
1
文章
860
粉丝
112
评论
163
net core webapi post传递参数
庸人 : 确实坑哈,我也是下班好了好几次,发现后台传递对象是可以的,但...
百度编辑器自定义模板
庸人 : 我建议换个编辑器,因为现在百度富文本已经停止维护了,用tinymec...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

mvc前后台传值,action之间传值

4256人阅读 2017/10/11 10:11 总访问:5182400 评论:0 收藏:0 手机
分类: .NET


MVC后台向前台传值



l  Viewdata

    Viewdata[key] = xj


l  Viewbag

    Viewbag.key = xj

 

l  model

        model传参一次只能传一个

        model传参的类型转化更简单一点,

        @model 接类型即可       
       
       如果model传参想传一个字符串可以这样 return view('index',"参数内容"),如果直接写return view("参数内容"),这个参数内容他会认为是视图的名字,而不是参数的内容!


ltempdata

         用法和viewdata类似,TempData["name"] = value。只是他是一个临时变量,一次请求中有效,第二次就失效了

      ViewdataViewbag其实都是一个键值对,三种传参的方式其实显示几乎都是一样的,字符串,int这些可以直接显示。如果是对象类型做一个转化在显示即可

      一个action多钟传参可以一起使用


简单案例:

后台:

  1.         public ActionResult Index()
  2.         {
  3.             //传一个简单的字符串
  4.             ViewData["name"] = "hello razor22222";
  5.             List<string> fruits = new List<string>() { "西瓜""苹果""桃子""李子" };
  6.             ViewData["fruits"] = fruits;
  7.             UserInfo userInfo = new UserInfo() { Id = 1, UserName = "诸葛詹", Age = 19, Area = "蜀国" };
  8.             ViewData["userInfo"] = userInfo;
  9.             List<UserInfo> userInfos = new List<UserInfo>() {
  10.                 new UserInfo(){ Id=1, UserName="诸葛亮",Age=27, Area="蜀国" },
  11.                 new UserInfo(){ Id=2, UserName="诸葛亮",Age=30, Area="蜀国" },
  12.                 new UserInfo(){ Id=3, UserName="曹操",Age=30, Area="魏国" },
  13.                 new UserInfo(){ Id=4, UserName="孙权",Age=25, Area="吴国" },
  14.                 new UserInfo(){ Id=5, UserName="黄月英",Age=20, Area="蜀国" },
  15.                 new UserInfo(){ Id=6, UserName="黄忠",Age=70, Area="蜀国" },
  16.                 new UserInfo(){ Id=7, UserName="孙尚香",Age=18, Area="吴国" },
  17.                 new UserInfo(){ Id=2, UserName="诸诸侠",Age=27, Area="吴国" },
  18.             };
  19.             ViewData["userInfos"] = userInfos;
  20.             return View();
  21.         }

前台:

  1. <div style="margin-top:20px">
  2.     @ViewData["name"]
  3. </div>
  4. <div style="margin-top:20px">
  5.     @{
  6.         List<string> friuts = ViewData["fruits"] as List<string>;
  7.         WebApplication2.Models.UserInfo userInfo = ViewData["userInfo"] as WebApplication2.Models.UserInfo;
  8.         List<WebApplication2.Models.UserInfo> userInfoList = ViewData["userInfos"] as List<WebApplication2.Models.UserInfo>;
  9.     }
  10.     @foreach (var item in friuts)
  11.     {
  12.         <div>@item</div>
  13.     }
  14. </div>
  15. <div style="margin-top:20px">
  16.     <div>
  17.         姓名:<span>@userInfo.UserName</span>,年龄:<span>@userInfo.Age</span>,国家:<span>@userInfo.Area</span>
  18.     </div>
  19. </div>
  20. <div style="margin-top:20px">
  21.     @foreach (var item in userInfoList)
  22.     {
  23.         <div>
  24.             姓名:<span>@item.UserName</span>,年龄:<span>@item.Age</span>,国家:<span>@item.Area</span>
  25.         </div>
  26.     }
  27. </div>





前台向后台传值

 

表单传值

     直接提交表单即可 

地址栏传值

     问号传参 

路由传值

                   使用路由配置传递参数



Action之间传值,页面跳转传值


方法一:路由传值


很简单直接使用 RedirectToAction(string actionName, string controllerName, object routeValues)

这个方法的第三个就是用于传递参数的。

  1. return RedirectToAction("About"new Users() { username = "x", age = 24, address = "j" });

接收:

  1. public ActionResult About(Users user)
  2. {
  3.     return View();
  4. }


传递一个匿名对象也是可以的

  1. return RedirectToAction("About"new { username = "李清照", address = "三国" });

接收:

  1. public ActionResult About(string username, string address)
  2. {
  3.     return View();
  4. }


其实本质也是地址栏传参而已,所以要注意和路由设置冲突问题




方法二:TempData

  1.   public ActionResult News() 
  2.         {
  3.             TempData["name"] = "AJ";
  4.             return RedirectToAction("About");
  5.         }
  6.         public ActionResult About()
  7.         {
  8.             string name = TempData["name"].ToString();
  9.             return View();
  10.         }

tempdata是基于session实现的他是一个临时变量,一次请求中有效,第二次就失效了。
当然如果是一次请求中获取多少也是可以的,所以有些说获取一次会就被销毁的说法是错误的


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

.net mvc分部页,.net core分部页

.net分部页的三种方式第一种:@Html.Partial(&quot;_分部页&quot;)第二种:@{ Html.RenderPartial(&quot;分部页&quot;);}...

三分钟快速复习mvc知识

读这篇文章不意味着你一定要去并且能搞定MVC面试。这篇文章的目的是在面试之前让你快速复习MVC知识。什么是MVC (模型 视图 ...

Idea下使用maven搭建SSM(一):Springmvc

Spring MVC是一款基于MVC架构模式的轻量级Web框架,其目的是将Web开发模块化,对整体架构进行解耦,简化Web开发流程。下面...

C mvc RedirectToAction跳转时候传递参数,action之间传值

MVC Action之间传值,页面跳转传值方法一:路由传值很简单直接使用 RedirectToAction(string actionName, string controller...

.net mvc 登录后跳回原来的页面

把当前连接传递到登录界面,然后登录后根据那个连接跳转回来就好跳转前可以使用Request.Url获取当前页面的地址:&lt;ahref=...

在idea下搭建Spring Boot+Spring mvc+thymeleaf

今天大兄弟来讲一下在idea下,使用Spring Boot ,搭建Spring MVC+thymeleaf。在Java开发领域,Spring Boot算得上是一颗耀眼...

mvc过滤器

过滤器:过滤器(filter):是基于AOP(面向接口编程)的设计,它的作用是对MVC框架处理客户端请求注入额外的逻辑。本质:...

asp.net mvc @helper用法

@helper可以在视图定义一个公共块,这样就可以实现代码的重复调用下面来一个很简单的例子:就是输出一个list的数据。实际项...

扩展mvc实现model直接传递匿名对象

如果我们直接通过model传递匿名对象,是不行滴后台通过model传递一个匿名对象publicActionResultIndex() { returnView(ne...

ASP.NET mvc从请求到响应发生了什么

先就贴一张图哦在来一张

.net core mvc中其他类库获取appsettings.json

appsetting:{ &quot;ApplicationSettings&quot;:{ &quot;DalAssemblyName&quot;:&quot;INGEFDal&quot; }, ... }c#:pu...

.NET mvc 使用百度编辑器详细教程:(1)配置编辑器

一、什么是百度编辑器百度编辑器UEditor是由百度web前端研发部开发一款应用于网站的编辑器,具有轻量,可定制,注重用户体...

Asp.net mvc 利用(aspose+pdfobject.js) 实现在线预览office文档

Aspose.Total是Aspose公司旗下的最全的一套office文档管理方案,通过它,我们可以有计划地操纵一些商业中最流行的文件格式...

asp.net mvc 下载文件

方法1:publicvoidDownLoad() { stringfilePath=&quot;文件路径&quot;; using(FileStreamfs=newFileStream(filePath,Fil...

ASP.NET mvc + WebUploader+BootStrap实现文件上传进度条显示

引入需要的资源文件:&lt;scriptsrc=&quot;~/Content/jquery-1.9.1.min.js&quot;&gt;&lt;/script&gt; &lt;linkhref=&quot;...

ASP.NET mvc + WebUploader实现文件上传二:使用中的一些问题

如何把文件选择按钮换成自己的因为WebUploader设置关联的上传id会有他的样式,有时候想换成自己的开始想的是添加自己的文件...