在利用ASP.NET MVC过程中想必大家都有遇到过一个问题就是我们的Action如何向视图传递匿名范例的值呢,如果不做特殊处理则无法实现。
接下来我们来看一个示例:
在我们的控制中:
- using System.Collections.Generic;
- using System.Web.Mvc;
- namespace TianYa.DotNetShare.MvcDemo.Controllers
- {
- public class DemoController : Controller
- {
- // GET: Demo
- public ActionResult Index()
- {
- var listStu = new List<dynamic>
- {
- new
- {
- SNo="1000",
- Name = "张三",
- Sex = "男",
- Age =20
- },
- new
- {
- SNo="1001",
- Name = "李四",
- Sex = "男",
- Age =21
- }
- };
- var stu = new
- {
- SNo = "1002",
- Name = "钱七七",
- Sex = "女",
- Age = 20
- };
- ViewBag.stu = stu;
- ViewBag.listStu = listStu;
- return View();
- }
- }
- }
复制代码
在我们的视图中:
- @{
- Layout = null;
- }
- <!DOCTYPE html>
- <html>
- <head>
- <meta name="viewport" content="width=device-width" />
- <title>Index</title>
- </head>
- <body>
- <div>
- @foreach (var item in ViewBag.listStu)
- {
- <p>学号:@(item.SNo),姓名:@(item.Name),性别:@(item.Sex),年事:@(item.Age)。</p>
- }
- <p>
- 学号:@(ViewBag.stu.SNo),姓名:@(ViewBag.stu.Name),性别:@(ViewBag.stu.Sex),年事:@(ViewBag.stu.Age)。
- </p>
- </div>
- </body>
- </html>
复制代码
然后将网站部署到我们的IIS上面,接下来来访问一下我们的/demo/index
可以发现报错了,说明传值失败了,那么接下来我们来简单介绍下如何解决这个问题。
首先添加一个扩展方法帮助类:
然后对我们的控制器做一些调整,增加调用我们的扩展方法:
- using System.Collections.Generic;
- using System.Web.Mvc;
- using TianYa.DotNetShare.CommTool;
- namespace TianYa.DotNetShare.MvcDemo.Controllers
- {
- public class DemoController : Controller
- {
- // GET: Demo
- public ActionResult Index()
- {
- var listStu = new List<dynamic>
- {
- new
- {
- SNo="1000",
- Name = "张三",
- Sex = "男",
- Age =20
- },
- new
- {
- SNo="1001",
- Name = "李四",
- Sex = "男",
- Age =21
- }
- };
- var stu = new
- {
- SNo = "1002",
- Name = "钱七七",
- Sex = "女",
- Age = 20
- };
- ViewBag.stu = stu.ToDynamic();
- ViewBag.listStu = listStu.ToDynamicList();
- return View();
- }
- }
- }
复制代码
处理完后再来访问一下我们的/demo/index
可以看出正常显示了,说明我们的传值成功了。
至此,本章就介绍完了,如果你觉得这篇文章对你有所帮助请记得点赞哦,谢谢!!!
demo源码:
- 链接:https://pan.baidu.com/s/1_EXtKKYBYBFpBf5aDT4ASw
- 提取码:atem
复制代码
版权声明:如有雷同纯属巧合,如有侵权请及时接洽本人修改,谢谢!!! 来源:https://www.cnblogs.com/xyh9039/p/11348684.html 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |