在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一、Html.RenderPartial方法和Html.RenderAction方法 :Html.RenderPartial与Html.RenderAction两个方法都是在ASP.NET MVC中用来显示PartialView的方法,都用来在HTML页面上嵌入用户自定义控件,都常被用来显示一个功能相对独立的模块让网页相同功能的模块可以重复使用,比如显示菜单和导航条,两者输出的结果都被作为调用View的一部分显示。 2.区别:(1)Html.RenderPartial方法是直接Html页面上嵌入用户自定义控件。 语法为:
<%Html.RenderPartial("~/Areas/Comm/Views/Shared/UserControlName.ascx");%>
(2)Html.RenderAction方法是通过Controller(用户控件所在的Controller)里面的Action方法来调用用户自定义控件。允许直接调用一个Action方法,并把返回结果直接显示在当前的View中 语法为:
3.小结:(1)可知Html.RenderPartial方法的数据来自调用它的View而Html.RenderAction方法的数据来自于它自己。 (2)Html.RenderAction方法会发起一个新的Request,而Html.RenderPartial方法则不会。 (3)Html.RenderPartial方法适用于呈现需要重复使用的UserControl,而且只需要通过Model来呈现内容。 (4)Html.RenderAction方法适用于需要从数据库获取数据的(即通过Action方法来读取数据库数据)的UserControl。 二、ASP.NET MVC 中的ViewData与ViewBagAsp.net MVC默认使用 Web Form来作为View,新建的aspx页面均是继承于ViewPage。而ViewData和ViewBag都是ViewPage的属性。ViewPage.ViewData表示获取或设置一个字典,其中包含在控制器和视图时间传递的数据,也就是说ViewPage.ViewData是控制器Controller和视图View之间沟通传递数据的桥梁。而ViewPage.ViewBag则表示获取一个视图包。 1、ViewData和ViewBag的差别:
三、获取ASP.NET MVC的请求数据的方法请求数据包括:窗体数据、查询字符串参数值、cookie 要获取ASP.NET MVC的请求数据就需通过Request属性。控制器Controller和视图View都有一个Requerst属性,它们都可以用来获取请求数据。 1、获取指定窗体的请求数据 通过Request.Form就可以获取指定窗体的数据,例如: string userName=this.Request.Form["UserName"]; string passWord =this.Request.Form["PassWord"]; 2、通过Request.QueryString获取查询字符串参数值,例如: string searchKeyWord=this.Request.QueryString["searchKeyWord"]; 3、通过Request.Cookies获取Cookie值,例如: string userName=this.Request.Cookies["UserName"].Value; 4、也可以模糊的使用Request来获取请求数据,这样获取的数据可能是窗体数据也可能是查询字符串参数值和Cookie。但是这样会造成性能上的一些损失,不建议使用。例如: string userName=this.Request["UserName"]; 四、Request.ServerVariables属性也就是HttpRequest.ServerVariables表示获取Web服务器变量的集合,允许读取HTTP头。可以通过使用"HTTP_"这个前缀来读取任何HTTP的头部信息。 1、 Request.ServerVariables["Url"] 返回服务器地址 2、Request.ServerVariables["Path_Info"] 客户端提供的路径信息 3、Request.ServerVariables["Appl_Physical_Path"] 与应用程序元数据库路径相应的物理路径 Request.ServerVariables["Path_Translated"] 通过由虚拟至物理的映射后得到的路径 Request.ServerVariables["Script_Name"] 执行脚本的名称 Request.ServerVariables["Query_String"] 查询字符串內容 Request.ServerVariables["Http_Referer"] 请求的字符串內容 Request.ServerVariables["Server_Port"] 接受请求的服务器端口号 Request.ServerVariables["Remote_Addr"] 发出请求的远程主机的IP地址 Request.ServerVariables["Remote_Host"] 发出请求的远程主机名称 Request.ServerVariables["Local_Addr"] 返回接受请求的服务器地址 Request.ServerVariables["Http_Host"] 返回服务器地址 Request.ServerVariables["Server_Name"] 服务器的主机名、DNS地址或IP地址 Request.ServerVariables["Request_Method"] 提出请求的方法比如GET、HEAD、POST等等 Request.ServerVariables["Server_Protocol"]服务器使用的协议的名称和版本 Request.ServerVariables["Server_Software"]应答请求并运行网关的服务器软件的名称和版本 Request.ServerVariables["All_Http"]客户端发送的所有HTTP标头,前缀HTTP_ Request.ServerVariables["All_Raw"] Request.ServerVariables["Appl_MD_Path"]应用程序的元数据库路径 Request.ServerVariables["Content_Length"]客户端发出內容的长度 Request.ServerVariables["Https"]如果请求穿过安全通道(SSL),则返回ON如果请求来自非安全通道,则返回OFF Request.ServerVariables["Instance_ID"]IIS实例的ID号 Request.ServerVariables["Instance_Meta_Path"]响应请求的IIS实例的元数据库路径 Request.ServerVariables["Http_Accept_Encoding"]返回內容如:gzip,deflate Request.ServerVariables["Http_Accept_Language"]返回內容如:en-us Request.ServerVariables["Http_Connection"] Request.ServerVariables["Http_Cookie"] 2DYum=125;ASPSESSIONIDCARTQTRA=FDOBFFABJGOECBBKHKGPFIJI;ASPSESSIONIDCAQQTSRB=LKJJPLABABILLPCOGJGAMKAM;ASPSESSIONIDACRRs-s-rA=DK HHHFBBJOJCCONPPHLKGHPB Request.ServerVariables["Http_User_Agent"]返回內容:Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1) Request.ServerVariables["Https_Keysize"]安全套接字层连接关键字的位数,如128 Request.ServerVariables["Https_Secretkeysize"]服务器验证私人关键字的位数如1024 Request.ServerVariables["Https_Server_Issuer"]服务器证书的发行者字段 Request.ServerVariables["Https_Server_Subject"]服务器证书的主题字段 Request.ServerVariables["Auth_Password"]当使用基本验证模式时,客户在密码对话框中输入的密码 Request.ServerVariables["Auth_Type"]是用户访问受保护的脚本时,服务器用於检验用户的验证方法 Request.ServerVariables["Auth_User"]代证的用户名 Request.ServerVariables["Cert_Cookie"]唯一的客户证书ID号 Request.ServerVariables["Cert_Flag"]客户证书标誌,如有客户端证书,则bit0为0如果客户端证书验证无效,bit1被设置为1 Request.ServerVariables["Cert_Issuer"]用户证书中的发行者字段 Request.ServerVariables["Cert_Keysize"]安全套接字层连接关键字的位数,如128 Request.ServerVariables["Cert_Secretkeysize"]服务器验证私人关键字的位数如1024 Request.ServerVariables["Cert_Serialnumber"]客户证书的序列号字段 Request.ServerVariables["Cert_Server_Issuer"]服务器证书的发行者字段 Request.ServerVariables["Cert_Server_Subject"]服务器证书的主题字段 Request.ServerVariables["Cert_Subject"]客户端证书的主题字段 Request.ServerVariables["Content_Type"]客户发送的form內容或HTTPPUT的数据类型 Request.ServerVariables["HTTP_X_FORWARDED_FOR"] 可以获得位于代理(网关)后面的直接IP,当然必须这个代理支持 一些被隐藏起来的Request.ServerVariables参数: 本机ip:<%=request.servervariables["remote_addr"]%> Request.ServerVariables变量意义. http代理相关知识 五、http代理相关知识关键就在HTTP_X_FORWARDED_FOR 使用不同种类代理服务器,上面的信息会有所不同: 1、没有使用代理服务器的情况: 2、使用透明代理服务器的情况:Transparent Proxies 3、使用普通匿名代理服务器的情况:Anonymous Proxies 4、使用欺骗性代理服务器的情况:Distorting Proxies 5、使用高匿名代理服务器的情况:High Anonymity Proxies (Elite proxies) |
请发表评论