Asp MVC(视图层)

ASP MVC (View) 知识点
1.通过控制层返回给VIEW层,ViewDate如果包含值,那么VIEW层取值的方式是:

<%:ViewData["Message"]%>,如果是从ViewData中取数据注意要有冒号。
2.在该层尽量使用HtmlHelp来呈现HTML的表单控件。
3.视图层文件夹结构:
View包含于各个controller层对应的目录结构,还有一个shared目录文件夹。
系统对VIEW层的访问机制是:首先根据CONTROLLER层返回的视图,如果return

View()没有参数,那么就去VIEW目录文件夹下找与该控制层结构一致的文件夹,然

后再找到名字为所对应方法名字的xx.aspx
例如:
public ActionResult Index()
        {
            ViewData["Message"] = "欢迎使用 ASP.NET MVC!";

            return View();
        }
MVC框架会去寻找view>控制层>Index.aspx,如果找不到,再去shared文件夹下找,

再找不到则抛错。
如果你返回的路径是另外一个控制层目录下的ASPX文件,那就必须写明具体路径。
return View("~/Acount/index.aspx");

4.在VIEW层使用弱类型和强类型。
弱类型指的是,控制层传到页面的是直接将一个LIST放入到ViewData[]中,然后在页面进行转换。例如:
public ActionResult Index()
        {
            ViewData["Message"] = "欢迎使用 ASP.NET MVC!";
            var dinners = new List<Dinners>();
            for (int i = 0; i < 10; i++)
            {
                Dinners din = new Dinners();
                din.Address = "建设北路"+i+"号";
                dinners.Add(din);
            }
            ViewData["list"] = dinners;
            return View();
        }
视图层取出对象:
<%foreach (NerdDinner.Dinners p in (ViewData["list"]) as IEnumerable<NerdDinner.Dinners>)
          { %>
                <li><%:p.Address %></li>
        <% }%>

强类型的取值方式:
控制层代码:
public ActionResult Index()
        {
            ViewData["Message"] = "欢迎使用 ASP.NET MVC!";
            var dinners = new List<Dinners>();
            for (int i = 0; i < 10; i++)
            {
                Dinners din = new Dinners();
                din.Address = "建设北路"+i+"号";
                dinners.Add(din);
            }
           //将LIST放入到一个MODEL中
            return View(dinners);
        }
视图层:
首先要在标签的地方标注你要强制转换的类型:
Inherits="System.Web.Mvc.ViewPage<IEnumerable<NerdDinner.Dinners>>"

然后取值:(可以不用转型了)
 <%foreach (NerdDinner.Dinners p in Model)
          { %>
            <li><%:p.Address %></li>
        <%} %>

 

注释:

var关键字是C# 3.0开始新增的特性,称为推断类型。
它是指如果某个局部变量被声明为var,那么该声明被视为隐含类型的局部变量声明。var而不是显式类型。var关键字指示编译器根据初始化语句右侧的表达式推断变量的类型。推断类型可以是内置类型、匿名类型、用户定义类型、NET Framework类库中定义的类型或任何表达式。
在方法范围中声明的变量可以具有隐式类型var。隐式类型的本地变量是强类型变量,但由编译器确定类型。需要了解的一点是,var关键字并不意味着“变体”,也不表示该变量是松散类型化变量或后期绑定变量。它只是表示由编译器确定和分配最适当的类型。
至于你的那段代码中使用var,是指将查询结果赋值给变量result,根据查询结果来判断result的类型,当你执行后就会发现result是一个数组类型。

 

由控制层动态决定加载哪个视图:

public ActionResult Index()
        {
           
            ViewResult vr = View("next");
            return View(vr);
          
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值