Mvc传值

提到Mvc传值我想大多数人想到的是ViewBag,自3.0之后在控制器与视图之间传值绝大多数传值用到的对象就是ViewBag。对于笔者以前做过的一些小的项目,貌似不需要考虑什么,但对于稍微大些的项目涉及到多个字段需要传递的时候我们就不得不考虑一下了。我们总不能把要传递的变量全放到viewbag中吧,可以想象一下一长列ViewBag赋值是件很恐怖的事,不仅代码冗长,且没有智能感识。首先想到的解决方案就是将所有的变量放到一个对象中,使用强类型视图,然后我们就可以很方便的在视图中利用智能感识访问我们想要的值。需要提及的是,在我们放在变量中的很多字段或对象中常常包含一些复合对象,笔者推荐两种方式处理这个问题:一,若相应复合对象在视图中多次被用到,建议将该对象放到ViewBag中然后中视图中进行类型转化,这样书写简便同时也能获得智能感识;二,可以采用对象组合的方式,直接将该对象作为这个强类型的一个字段。至于采用上述哪种方式就需要读者自己把握了,然而还有些变量最好也要单独放到ViewBag中,那些变量呢?这就要涉及到那些ViewBag中视图与母版页局部视图之间的传递顺序规则了。中mvc将一个对象放到ViewBAg中后,首先自然是该控制器对应的视图会先行获得该值,然后会中模板页中可以访问到,再然后可以中局部视图中可以访问到,这个局部视图必须是通过RenderPartial方式渲染的才可以访问主视图中的ViewBag,否则仅可以访问本视图或对应于本视图的控制器储存在ViewBag中的值。根据这个顺序,如果我们的主视图中引用了较多的视图的话,建议把那些需要在多个视图中访问的对象也放在ViewBag中。

时间: 2024-12-24 00:21:20

Mvc传值的相关文章

MVC传值--从Controller想View传递List集合

在MVC中,传值是一个很重要的内容之一.前面的博客中,我们了解了如何从Controller中向View传递单个的变量值以及从View向Controller的反向传递. 这次我们来看看,如何把一个List集合进行传递. 首先,我们先在Controller中建立一个List: public ActionResult Index() { ViewData["QuestionId"] = Request.QueryString["QuestionID"];//从页面的地址栏

Spring MVC 传值方式总结

前端传到Controller: 方法1 通过HttpServletRequest .写法如下: @Controller public class MyTestController { @RequestMapping("/print") public String PrintInfo(HttpServletRequest request) { System.out.println("name:" +request.getParameter("name&quo

MVC 传值

MVC 各种传值方式 ViewData传值.HomeController.cs Co de: public ActionResult Index(){      ViewData["Title" ] = "Home Page" ;     ViewData["Message" ] = "Welcome to ASP.NET MVC!" ;     return View();} Views/Home/Index.aspx Co

Core Mvc传值Request和HttpContext

1.传值方法 使用Request的方法(1-3): 1)Query:获取链接?后面的值 如:http://localhost:55842/Home/About?name=kxy public IActionResult About() { ViewData["Message"] = "Your application description page."; //-------------------------Request---------------------

.net mvc传值问题

1.<a>标签传值的形式--参数固定:<a href="地址?参数名=值"></a>,多个参数用&隔开<a href="地址?参数1=值&参数2=值"></a> 例:<a href="a.jsp?name=张三"></a> <div class="pop"> <div style="height:46

Core Mvc传值ViewData、ViewBag和return view(model)

先定义一个Model类Student namespace Lession.Models { public class Student { public string Name { get; set; } public int Age { get; set; } public string Sex { get; set; } } } 控制器如下: using Lession.Models; using Microsoft.AspNetCore.Mvc; namespace Lession.Cont

ASP.NET MVC传值

Controller 1 public ActionResult Index() 2 { 3 4 ViewData["num"] = 5; 5 6 ViewBag.count = 6; 7 8 TempData["num"] = 7; 9 10 uname un = new uname() { name = "Chris", pwd = "123" }; 11 12 ViewData["uname"] =

Spring MVC传值乱码解决

在web.xml中进行配置,加入以下代码: 1 <!-- 乱码解决 --> 2 <filter> 3 <filter-name>characterEncodingFilter</filter-name> 4 <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 5 <init-param> 6 <para

MVC传值前台

ViewBag.model = bLL.GetModel((int)id); ViewBag.RecruitmentTime = ViewBag.model.RecruitmentTime.ToString("yyyy-MM-dd"); //格式化返回前台输出的时间 return View(); //返回界面 原文地址:https://www.cnblogs.com/enych/p/8757477.html