MVC零碎知识-悟(一)

一、View中model的关联

1.当关联单一对象时,需要关联相应命名空间下的模型对象

@model MvcMusicStore.Models.Album

显示:

<div class="display-label">
@Html.DisplayNameFor(model => model.Title)
</div>

2.关联对象集合时,则需添加IEnumerable<相应命名空间下的模型对象>,以方便视图知道传入的一个集合

@model IEnumerable< MvcMusicStore.Modles.Album>

显示:

<table>
<tr>
<th>Title</th>
<th>Price</th>
<th></th>
</tr>
@foreach(var item in Model){
<tr>
<td>@item.Title</td>
<td>@String.Format("{0:c}",item.Price)</td>
<td>@Html.ActionLink("Buy", "Buy", new {id=item.AlbumId})</td>
</tr>
}
</table>


二、@Html.ActionLink几种参数格式

1.Html.ActionLink("linkText","actionName")

该重载的第一个参数是该链接要显示的文字,第二个参数是对应的控制器的方法,

默认控制器为当前页面的控制器,如果当前页面的控制器为Products,则 Html.ActionLink("detail","Detail")

则会生成 <a href="/Products/Detail">all</a>

2.Html.ActionLink("linkText","actionName","controlName")

该重载比第一个重载多了一个参数,他指定了控制器的名称,

如Html.ActionLink("detail","Detail","Products")则会生成

<a href="Products/Detail">all</a>

3.Html.ActionLik("linkText","actionName",routeValues)

routeValue可以向action传递参数,如Html.ActionLink("detail","Detail",new { id=1})

会生成 <a href="Products/Detail/1">detail</a>,

此处假设当前的控制器是Products.

4.Html.ActionLink("linkText","actionName",routeValues,htmlAttributes)

htmlAttribute可以设置<a>标签的属性,

如 Html.ActionLink("detail","Detail",new{id=1},new{ target="_blank"})

会生成 <a href="Products/Detail/1" target="_blank">detail</a>,

需要主要的是如果写成 new{ target="_blank",class="className"}则会报错,

因为class是关键字,此处应该写成 @class="className"。

五 Html.ActionLink("linkText","actionName","controlName",routeValues,htmlAttributes)

该重载包含了上面提到的所有参数类型

时间: 2024-10-27 11:43:16

MVC零碎知识-悟(一)的相关文章

c/c++面试题(7)零碎知识总结

1.变量的声明和定义有什么区别? 声明:变量的声明做了两件事情 a.告诉编译器这个变量已经匹配到一块内存上了,下面的代码用到的变量或对象是在别处定义的. 声明可以出现很多次. b.告诉编译器这个变量名已经被我占用了,其他的的变量将不能再使用. 定义:告诉编译器创建一个对象,为这个对象分配一块内存并给它取一个名字,这个名字就是常说的 变量名或对象名.同一变量或对象的定义只能出现一次. 本质区别:声明没有分配内存,而定义则是创建了对象并为这个对象分配了一块内存. 2.sizeof和strlen之间的

开发零碎知识集锦

开发零碎知识集锦 idea超好用的快捷键 默认的idea快捷键,以及常用的快捷键就不再数流水,这里只介绍你不常用,但是又十分好用的快捷键. 上次改了什么,忘记了?alt + shift + c显示最近的更改 想找类里面的某个方法?ctrl + F12,当然还有个更强大的alt + shift + ctrl + n,不仅可以搜索方法,还可以搜类名 想定位到某一行代码?ctrl + G输入行号即可 Chrome开发者工具快捷键 想找某个文件?ctrl + P搜索某个文件 想定位某一行? ctrl +

MVC基础知识

1.ASP.NET MVC请求过程 1 2.Controller (1) 控制器在ASP.NET MVC中扮演着处理客户端请求的角色 1)必须实现System.Web.Mvc.IController接口 ->通常直接继承System.Web.MVC.Controller类 2)必须要以Controller结尾 3)通过不同的Action来处理具体的客户端请求 3.Action (1) 是指在继承了System.Web.Mvc.Controller类中所定义的返回值的类型可以兼容 (2)Actio

php获取服务器信息常用方法(零碎知识记忆)

突然整理下零碎小知识.......加深下印象: $info = array( '操作系统'=>PHP_OS, '运行环境'=>$_SERVER["SERVER_SOFTWARE"], '主机名'=>$_SERVER['SERVER_NAME'], 'WEB服务端口'=>$_SERVER['SERVER_PORT'], '网站文档目录'=>$_SERVER["DOCUMENT_ROOT"], '浏览器信息'=>substr($_SE

Spring MVC基础知识整理?View与Controller数据交互

概述 Spring MVC是由View—Controller—Model组成,其中View和Controller的数据交互,成为了关注的核心点.MVC中,我们将View中的数据传递到Controller,可以采用POST或者Get,传递相应的参数.Controller通过绑定来,匹配前台传递的参数.后台Controller也可以将值传递到前台页面. View值传递Controller 绑定传值的常用方式有如下 @RequestParam,绑定单个请求数据,可以是URL中的数据,表单提交的数据或上

【Python】 零碎知识积累 III

零碎积累 III ■ 函数的参数默认值在函数定义时确定并保存在内存中,调用函数时不会在内存中新开辟一块空间然后用参数默认值重新赋值,而是单纯地引用这个参数原来的地址.这就带来了一个坑,那就是当你在函数体中对默认参数做一些改变的时候,若参数默认值是int,str这种不可变类型,那么还好,因为默认参数在内存中并没改变,只是参数指向另一块空间:但若是list这种可变类型,当你对默认参数做改变的时候,将会直接影响这个参数在内存中实际的值,这也就影响了下次调用这个函数时参数的默认值.比如: def foo

【Python】 零碎知识积累 II

零碎积累II ■ global关键字用于把跟着的变量声明为全局变量.在看似不属于其的命名空间里也可以引用它. ■ 讲一个一维列表二维化的方式,用简单的一行语句来表达: [[array[rows*y+cols] for cols in range(y)] for rows in range(x)] #array是一个一维列表(或者数组),x表示二维化后的行数,y表示列数 ■ 想用C,java里面的switch语句结构,但是python里没有的时候,可以 1.  搞很多个if判断,不过这样很繁琐 2

Spring MVC基础知识整理?Spring+SpringMVC+Hibernate整合操作数据库

概述 Hibernate是一款优秀的ORM框架,能够连接并操作数据库,包括保存和修改数据.Spring MVC是Java的web框架,能够将Hibernate集成进去,完成数据的CRUD.Hibernate使用方便,配置响应的XML文件即可.由于spring3.x,基于asm的某些特征,而这些asm还没有用jdk8编译,所以采用Spring 3+JDK8就会报错,提示错误信息( java.lang.IllegalArgumentException),具体解决方案有:1.Spring 3+JDK7

Spring MVC基础知识整理?国际化和异常处理

概述 Spring框架为WEB项目提供了国际化以及异常处理机制.所谓的国际化也就是不同国籍,显示不同国籍的语言与符号.异常处理,也就是能够捕获WEB项目下的所有异常信息,并能处理记录这些异常信息机制. 国际化 Spring对国际化的语言采用配置的方式存储到配置文件中,在springservletconfig.xml文件,添加下面语句: <bean id="messageSource" class="org.springframework.context.support.