Asp.net mvc中controller与view间的如何传递数据

 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中的前后台传值,其实知识很多的时候是相通的,看到一个之后要多想想,这里只是写理论的介绍,之后会进行详细的实例讲解。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-18 08:13:45

Asp.net mvc中controller与view间的如何传递数据的相关文章

ASP.NET MVC中Controller与View之间的数据传递总结

在ASP.NET MVC中,经常会在Controller与View之间传递数据,因此,熟练.灵活的掌握这两层之间的数据传递方法就非常重要.本文从两个方面进行探讨: Ø Controller向View传递数据 Ø View向Controller传递数据 一.Controller向View传递数据 1.       使用ViewData传递数据 我们在Controller中定义如下: ViewData[“Message”] = “Hello word!”; 然后在View中读取Controller中

ASP.NET MVC中Controller与View之间的数据传递

一.Controller向View传递数据 Controller向View传递数据有3种形式: 1.通过ViewData传递 在Controller里面定义ViewData,并且赋值,比如 ViewData["contact"] = contact; 然后在View里面读取Controller中定义的ViewData数据 比如联系人: <input type="text" value='<%=ViewData["contact"] %

Asp.net MVC中 Controller 与 View之间的数据传递

在ASP.NET MVC中,经常会在Controller与View之间传递数据 1.Controller向View中传递数据 (1)使用ViewData["user"] (2)使用ViewBag.user (3)使用TempData["user"] (4)使用Model(强类型) 区别: (1)ViewData与TempData方式是弱类型的方式传递数据,而使用Model传递数据是强类型的方式. (2)ViewData与TempData是完全不同的数据类型,View

(四)ASP.NET MVC 中 Controller 给 View 传递数据的方式

1. ViewData: 以 ViewData["keyname"] = value 这样键值对的方式进行数据传送.在对应的 cshtml 中用 @ViewData["keyname"] 来获取值. 2. ViewBag: ViewBag 是 dynamic 类型的,是对 ViewData 的一人动态类型封装,用起来更方便,和 ViewData 共同操作一个数据 .在 Controller 中使用 ViewBag.keyname=value 来赋值,在 cshtml

Asp.net MVC中Controller向View传值

一.使用Model 首先创建一个Model public class HelloModel { private string _name; private string _text; public string Name { get { return _name; } set { _name = value; } } public string Text { get { return _text; } set { _text = value; } } } 然后创建强类型的View视图,在View

asp.net mvc中Controller向View传值方式总结

http://www.cnblogs.com/gaopin/archive/2012/11/13/2767515.html http://www.cnblogs.com/a164266729/p/4917202.html //1.ViewData传递 ViewData是Key/Value对 ViewData["str1"] = "hello 1"; //ViewData.str2 = "world 2"; //2.ViewBag传递 动态 且是强

ASP.NET MVC3中Controller与View之间的数据传递总结

</pre>在ASP.NET MVC<span style="font-family:宋体">中,经常会在</span>Controller<span style="font-family:宋体">与</span>View<span style="font-family:宋体">之间传递数据,因此,熟练.灵活的掌握这两层之间的数据传递方法就非常重要.本文从两个方面进行探讨:&

Asp.net MVC 中Controller返回值类型ActionResult

内容转自 http://blog.csdn.net/pasic/article/details/7110134 Asp.net MVC中Controller返回值类型 在mvc中所有的controller类都必须使用"Controller"后缀来命名并且对Action也有一定的要求: 必须是一个public方法 必须是实例方法 没有标志NonActionAttribute特性的(NoAction) 不能被重载 必须返回ActionResult类型 如: [csharp] view pl

MVC中Controller与View之间数据互传

转自:http://blog.csdn.net/sknice/article/details/42323791 在ASP.NET MVC中,经常会在Controller与View之间传递数据,因此,熟练.灵活的掌握这两层之间的数据传递方法就非常重要.本文从两个方面进行探讨: 一.Controller向View传递数据 1.使用ViewData传递数据 在Controller中定义如下: ViewData[“Message_ViewData”] = “ Hello ViewData!”; 在Vie