`

代码阅读总结之ASP.NET StartKit TimeTracker(应用程序路径之处理笔记)

阅读更多

在开发中我们为了整个程序目录结构清晰化,望望会建立许多不同的文件目录.
例如结构如下:

|root
 |pic
 |web
 |usercontrol

在web目录中,我们怎么取到pic目录中的图片路径呢?

方法1:
让我们先看看ASP.NET StartKit TimeTracker的解决方案:
ASP.NET StartKit TimeTracker的类Global中定义了一个公有方法:

public static string GetApplicationPath(HttpRequest request) 
        
{
            
string path = string.Empty;
            
try 
            
{
                
if(request.ApplicationPath != "/")
                    path 
= request.ApplicationPath;
            }

            
catch (Exception e)
            
{
                
throw e;
            }

            
return path;
        }


在需要的地方进行调用,例如:
<a href='<%= Global.GetApplicationPath(Request) %>/<%# ((ASPNET.StarterKit.TimeTracker.BusinessLogicLayer.TabItem)

Container.DataItem).Path %>'>
      <%# ((ASPNET.StarterKit.TimeTracker.BusinessLogicLayer.TabItem) Container.DataItem).Name %>
</a>

我对此方法进行了修改:

我先定义一个页面基类.
public class PageBase :System.Web.UI.Page
让系统中的其他aspx页面继承PageBase.
 
在基类定义下面的属性

protected string appPath
        
{
            
get
            
{
                
string path=String.Empty;
                
try
                
{
                    
if ("/"!=Request.ApplicationPath)
                    
{
                        path
=Request.ApplicationPath;
                    }

                }

                
catch(Exception e)
                
{
                    
throw e;
                }

                
return path;    
            }

        }


在我的aspx页中,进行下面属性绑定得到图片
<img src='<%= appPath+"/pic/register.gif" %>' >

方法2:
也是我以前常用的方法

<asp:Image id="Image1" runat="server" ImageUrl="../pic/register.gif"></asp:Image>

其实服务器控件支持另一种路径表示方法:"~", 相当于HttpRequest.ApplicationPath
<asp:Image Runat="server" id="Image1" ImageUrl="~/pic/register.gif"></asp:Image>

非服务器控件也可以这样:
<img  src="../pic/register.gif">

方法3:
用户的机器上部署的时候,将路径保存在web.config里面了。然后图片的路径是在后台的.cs中用Configuration.appsettings确定
这方法是最差的一招


总结:个人感觉方法1最好,最灵活,也是我在许多微软例题中看到的用得最多的方法。
不知道还有没有其他方法,欢迎指点。


<!---->

分享到:
评论

相关推荐

    网站框架(基于ASP.net startkit)

    ASP.NET StartKit是由微软提供的一个开源项目模板,用于快速搭建Web应用程序,特别是针对ASP.NET Core平台。这个框架旨在简化开发流程,提供一个起点,让开发者能够更轻松地构建功能丰富的、具有现代用户体验的网站...

    C51 StartKit学习板

    3. **中断处理**:掌握中断的概念及其在实际应用中的重要性,学会编写中断服务程序。 4. **定时器应用**:了解定时器的工作模式,实现精确的时间控制。 5. **显示技术**:学习如何驱动LED、数码管等显示设备,实现...

    Fusion startkit高级实验例程

    在本文中,我们将深入探讨"Fusion Startkit"高级实验例程,这是一套专为Actel FPGA(现场可编程门阵列)设计的实践教程,适用于周立功Fusion Startkit开发板。此套例程旨在帮助用户在Libero IDE 8.0环境下提升FPGA...

    周立功Fusion StartKit,fpga开发板的实验例程,adc

    周立功Fusion StartKit是一款专门用于FPGA(Field-Programmable Gate Array)开发的实验平台,旨在帮助用户快速理解和实践FPGA设计。ADC(Analog-to-Digital Converter)是该开发板上的一个重要组件,它能够将模拟...

    StartKit串口调试助手使用说明1

    【StartKit串口调试助手使用说明1】 StartKit串口调试助手是一款专为物联网设备调试设计的工具,它提供了一种简单易用的界面来配置串口通信参数,并且具有丰富的菜单功能,如日志管理和AT命令操作。下面将详细介绍...

    基于开发板的开发指南_StartKit_NB_V1.0 (1)1

    2. 开发开发板程序:这里将指导开发者如何编写针对开发板的源代码,包括初始化程序、数据处理、通信协议实现等。 3. 编译开发板程序:这部分详细描述了如何使用所安装的编译工具将源代码转化为可执行文件,包括编译...

    微信小程序StartKit

    微信小程序 StartKit (Gulp + Babel + Sass) 使用ES6(ES2015)提供的语法进行开发,构建时用Babel进行转译 使用SASS作为样式表预处理器 编译后的代码进行了压缩优化,并生成必要的Source Map文件 待完善的功能: 目前...

    Fusion startkit资料-实验例程-基础实验

    周立功Fusion startkit资料的实验例程的基础实验部分,libero ide8.0版本下运行

    微信小程序 StartKit.zip

    微信小程序的优势在于它方便快捷、轻量级、跨平台、丰富的推广方式、丰富的功能接口、数据分析与优化、结合微信支付、支持多场景应用、社交功能以及多端同步等。这些优点使得小程序能够满足用户的多种需求,提供更好...

    周立功Fusion StartKit,fpga开发板的实验例程electric current

    周立功公司是一家知名的电子技术企业,提供各种FPGA开发工具和解决方案,包括Fusion StartKit开发板。这个"electric current"标签的实验例程是针对FPGA开发板上的电流监控功能进行的,旨在帮助开发者学习如何利用...

    sw_startkit_examples:startKIT 开发板的示例代码

    startKIT 示例程序 所需软件(依赖项) sc_i2s ( :xcore/sc_i2s) sc_i2c ( :xcore/sc_i2c) sc_slicekit_support ( ) sw_audio_effects ( :xcore/sw_audio_effects) sc_sdram_burst ( ) sc_capacitive_sensing...

    ProASIC3 StartKit开发板原理图-周立功

    该开发板旨在为工程师提供一个易于使用的平台,以便进行原型设计、评估以及开发基于ProASIC3 FPGA的应用程序。本文将基于提供的原理图对ProASIC3 StartKit开发板的关键组件及其功能进行详细分析。 #### 开发板电源...

    周立功Fusion StartKit,fpga开发板的实验例程Flash Memory RAM

    周立功是一家专注于嵌入式系统与FPGA技术的公司,他们推出的Fusion StartKit是专为FPGA初学者和开发者设计的一款开发板,集成了丰富的功能和实验例程,帮助用户快速上手FPGA应用。 本实验例程重点围绕"Flash Memory...

    Et-Arm7-Start-Kit-v1-Manual_ARM7_

    在嵌入式系统领域,ARM7架构是广泛应用的微处理器系列之一,尤其在嵌入式控制器、物联网设备和消费电子等领域。本手册“Et-Arm7-Start-Kit-v1-Manual”专门针对基于ARM7的开发板——Et-Arm7-Start-Kit-v1进行详尽的...

    周立功Fusion StartKit,fpga开发板的实验例程FlashROM

    标题中的“周立功Fusion StartKit,fpga开发板的实验例程FlashROM”表明,这个压缩包文件包含的是与周立功Fusion StartKit开发板相关的FlashROM实验代码。FlashROM是一种非易失性存储器,能够在断电后保持数据,常...

    ACTEL A3P StartKit FPGA开发全套文挡(含测试源码)

    ACTEL A3P StartKit是一款基于ACTEL A3P1000 FPGA的开发套件,为FPGA设计者提供了一站式的硬件和软件开发环境。这个开发套件旨在简化A3P1000 FPGA的评估、学习和设计过程,帮助工程师快速实现其创新项目。其中包含的...

    1.2、网络文件 VisualSVN Server的配置和使用方法(项目部署到svn上)1

    VisualSVN Server是一款用于管理Subversion(SVN)仓库的工具,主要应用于项目代码的版本控制和协作。本文将详细介绍如何配置和使用VisualSVN Server,以及TortoiseSVN客户端的基本操作。 1. **VisualSVN Server...

Global site tag (gtag.js) - Google Analytics