1. Asp.net中的页面指令
无论是在java程序中还是在.net程序中,我们总是会看见一些@指令,那么这些常见指令的作用是什么呢?
? @Page指令
只能在.aspx页中使用.如果在其他页面中使用会发生编译错误.比较常见的属性有:
1. Language
指出在编译内联代码块和页的<script>节中出现的所有代码时所使用的语言,默认的语言是Visual Basic .NET。
2. AutoEventWireup
指出是否启用页事件.默认为true. VS.NET开发的页默认把该属性设置为false,因而事件单独关联到处理程序.
3. ErrorPage
定义目标URL,如果出现未处理的异常则自动重定向到该页.
4. Debug
指明是否应当用调试符号进行编译.
5. CodeFile
指明当前页的代码隐藏类的路径,该类的源文件必须部署到Web服务器.ASP.net 1.1中不支持该属性.
6. CodeBehind
Visual Studio 2003使用的属性,指出当前页的代码隐藏类的属性,该类的源文件将被编译成一个可部署的程序集.
7. ContentType
将响应的内同定义为标准的MIME类型.支持任何有效的HTTP内容类型字符串.
? @Assembly指令
@Assembly指令:程序指令。用于在编译时将程序集链接到页面,这是的程序员可以使用程序集公开的所有的类和方法。 @Assembly指令可以在aspx页面,.ascx文件,.master页面和.asax文件中使用。
1.语法
1,<%@AssemblyName="assName%"> //Name表示指定编译页面时链接的程序集
2,<%@Assembly Src="pathName"> //Src表示指定动态编译并链接到当前页面
? @Import指令
导入指令。该指令用于将空间显示导入到ASP.NET应用程序文件中,并且导入该命名空间的所有类和接口。导入的命名空间可以是NET.Framework类库的一部分,也可以是用户定义的命名空间的一部分。
语法:
<%@Import namespace="value"%>
@Import指令不能有多个namespace的属性,如果要导入多个命名空间,要使用多个@Import指令。
2. Asp.net的前后台取值
? <%%>与<scriptrunat=server>
<%%>与<scriptrunat=server>的区别是前者是可以声明一些变量或者输出语句,可以调用服务端的函数,但是其本身是不能声明函数或者定义一个过程的。但是后者是只能放置一些方法或者属性,但是不能直接书写输出语句也就是表达式等。
? <%=%>与<%#%>
两者的共同点都是前台的页面绑定后台的变量或者返回值进行显示,不同在于前者相当于是输出也就是<%= "A" % > 相当于:Response.Write("A");,而后者相当于是赋值<%# "A" % > 相当于:变量="A";
3. Asp.net mvc中前后台的传值
? Controller向view进行传值
包括三种方式,分别是viewData,TempData,以及viewModel,通常前两者是弱类型,而后者是强类型。
viewData
在Controller中定义如下:
ViewData[“Message”] = “Hello wangxiaopeng!”;
在View中读取Controller中定义的ViewData:
<% = Html.Encode(ViewData[“Message”])%>,也即是相当于将数据进行了输出显示。
此处加上了Encode的原因在于:如果明确知道输出的是一段Html编码的字符串,可以直接输出字符串。不然的话,如果字符串中带有空格或者<,这种可能引起浏览器曲解,就要加上Html.Encode进行Html编码的转换,以防出现一些不必要的错误。
TempData同上,与viewData写法相同。
此外还有就是强类型model
创建视图的时候可以选择强类型,并且给你命名,此时在新建的视图上就会出现
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master"Inherits="System.Web.Mvc.ViewPage<xxx>" %>,xxx代表你建立的要显示的model。
值得一说的是TempData实际上是将数据存在在了缓存中,因为是服务端的数据,也就是存在了session中,TempData默认是使用Session来存储临时数据的,TempData中存放的数据只一次访问中有效,一次访问完后就会删除了的。这个一次访问指的是一个请求到下一个请求,因为在下一个请求到来之后,会从Session中取出保存在里面的TempData数据并赋值给TempData,然后将数据从Session中删除。
? view向Controller进行传值
后台获取前台的数据,通常是通过获取表单的数据,有:Request.Form等来获取表单的数据。
4. 小结
理解了asp.net中的前后台传值再来看mvc中的前后台传值,其实知识很多的时候是相通的,看到一个之后要多想想,这里只是写理论的介绍,之后会进行详细的实例讲解。
版权声明:本文为博主原创文章,未经博主允许不得转载。