实验5——理解强类型View

424 篇文章 1 订阅



        public ActionResult StrongTypeView()
        {
            Employee emp = new Employee();
            emp.FirstName = "Sukesh";
            emp.LastName = "Marla";
            emp.Salary = 20000;
            return View("StrongTypeView",emp);
        }


@model MvcAppLesson2.Models.Employee
@{
    Layout = null;
   
}
 


<!DOCTYPE html>


<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>StrongTypeView</title>
</head>
<body>
    <div>
     添加以下代码来显示数据:<br />
     Employee Details <br />  
     Employee Name : @Model.FirstName @Model.LastName <br />  
     @if(Model.Salary>15000)
     {
     <span style="background-color:yellow">
                 Employee Salary: @Model.Salary.ToString("C")
         </span>
         }
         else
         {           
         <span style="background-color:green">        
                 Employee Salary: @Model.Salary.ToString("C")
         </span>
         }   
    </div>
</body>
</html>

实验5——理解强类型View

ViewData和ViewBag引起的所有问题根源都在于数据类型。参数值的数据类型是被封装在ViewData中的,称为对象。

如果能够设置Controller和View之间参数传递的数据类型,那么上述问题就会得到解决,因此从得出强类型View。

接下来,我们看一个简单的例子,如果工资大于15000则显示黄色,低于显示绿色。

1. 创建View的强类型

在View的顶部添加以下代码:

@model WebApplication1.Models.Employee

2. 显示数据

在View内部输入@Model.就会查看到Model类的属性

clip_image004

添加以下代码来显示数据:

   1:  Employee Details
   2:   
   3:  Employee Name : @Model.FirstName @Model.LastName 
   4:   
   5:  @if(Model.Salary>15000)
   6:  {
   7:  <span style="background-color:yellow">
   8:          Employee Salary: @Model.Salary.ToString("C")
   9:  </span>
  10:  }
  11:  else
  12:  {           
  13:  <span style="background-color:green">
  14:         
  15:          Employee Salary: @Model.Salary.ToString("C")
  16:  </span>
  17:  }

3. 从Controller Action方法中传递Model数据。

修改action代码

   1:  Employee emp = new Employee();
   2:  emp.FirstName = "Sukesh";
   3:  emp.LastName="Marla";
   4:  emp.Salary = 20000;           
   5:  return View("MyView",emp);
 

4. 测试输出

clip_image005

关于实验5

View中使用类时需要声明类的全称吗 (Namespace.ClassName)?

添加以下语句,就不需要添加全称。

   1:  @using WebApplication1.Models
   2:  @model Employee
 

是否必须设置强类型视图或不使用ViewData和ViewBag?

设置强类型视图是最佳解决方案。

是否能将View设置为多个Model使用的强类型?

不可以,实际项目中在一个View中想要显示多个Model时以点结束的。该问题的解决方法将在下一节讨论。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值