MVC强类型视图,详细信息展示【五】

一、在MVC三种讲到两种后端发送数据到前端的方法,今天讲的是第三种,发送过去的方法 【强类型视图】。

1. 强类型视图,就是指在传递的过程中只能传递一种类型的数据到该视图中,就比如默认的传递的数据类型是dynamic其实该类型就是相当于一种object类型,就是指可以传递过来任何类型的值,并且去接收。

 而本篇用到的就是强类型,就是指指定一种类型的数据,比如本视图需要传递的是一张表里的数据,那么就需要传入一个表对应的类的名称过来。直接看代码示例吧:

后端代码:   注意第7行的代码,将第六行的代码换成第七行的便可

1  public ActionResult ShowDetail()
2         {
3             wangjin2Entities1 db = new wangjin2Entities1();
4             int id = Convert.ToInt32(Request["id"]);
5             var userinfo = db.Userinfo.Where<Userinfo>(u => u.Id == id).FirstOrDefault();
6             //ViewData["userInfo"] = userinfo;  //这是以往的传递的方式
7             ViewData.Model = userinfo;    //这是强类型传递数据的方式
8             return View();
9         }

前端代码如下:   注释掉的都是以往的方式,需注意的就是第一行的代码,将本来的dynami类型换成了userinfo,并且需要导入userinfo类所在在命名空间。以及16,17行直接通过点的方式获取值

 1 <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<Userinfo>" %>
 2 <%@ Import Namespace="MvcApplication1.Models" %>
 3 
 4 <!DOCTYPE html>
 5 
 6 <html>
 7 <head runat="server">
 8     <meta name="viewport" content="width=device-width" />
 9     <title>ShowDetail</title>
10 </head>
11 <body>
12     <div>
13         <%--注释掉的都是以往传参的方式--%>
14        <%-- <%Userinfo userinfo = (Userinfo)ViewData["userInfo"]; %>--%>
15         <table>
16             <tr><td>账号</td><td><%--<%=userinfo.username %>--%> <%=ViewData.Model.username %></td></tr>
17             <tr><td>密码</td><td><%--<%=userinfo.password %>--%> <%=ViewData.Model.password %></td></tr>
18         </table>
19     </div>
20 </body>
21 </html>
原文地址:https://www.cnblogs.com/wangjinya/p/10675412.html