基于C#MVC开发环境的不同URL

Pat*_*ick 7 c# asp.net-mvc

我有两个MVC Web应用程序,一个www.company.com和一个solution.company.com

网站www.company.com包含指向solution.company.com/Contact的链接,但如何在View中设置href以便能够在开发/预生产/生产环境中对其进行测试?

开发:

<a href="http://localhost:88/Contact/">Contact Us</a> 
Run Code Online (Sandbox Code Playgroud)

QA:

<a href="http://qa.solution.company.com/Contact/">Contact Us</a> 
Run Code Online (Sandbox Code Playgroud)

珠三角:

<a href="http://solution.company.com/Contact/">Contact Us</a> 
Run Code Online (Sandbox Code Playgroud)

Aks*_*eda 10

您可以使用web.config设置不同的变量.为每个环境使用单独的web.config.例如.web.release和web.debug.你可以使用相同的方式.为每个环境分隔文件

如果你使用,八达通部署.使用也可以在章鱼变量中设置.

<appSettings>
  <add key="MyVariable1" value="False" />
  <add key="MyName" value="akshay bheda" />
</appSetting>
Run Code Online (Sandbox Code Playgroud)

现在,您可以从C#代码轻松访问此变量及其值:

string myVariable = System.Configuration.ConfigurationSettings.AppSettings["MyName"];
Run Code Online (Sandbox Code Playgroud)

现在不用在那里写url,而是可以使用这个字符串.

<a href="<%= ConfigurationManager.AppSettings["someKey"] %>">
Run Code Online (Sandbox Code Playgroud)

如果您不想使用Octopus Deployment,可以按照以下步骤操作.

1.)从Configuration Manager创建新配置.它位于"构建菜单"下. 配置管理器 并为例如创建一个新的配置.生成并选择从Debug或任何其他当前web.config复制设置,这样您就不必再次写入.

2.)创建新配置后,右键单击Web.config并单击Add Config Transformation Web.config设置 之后,您将找到新配置的web.config.

在每个配置的appSettings部分进行更改,并在启动项目时选择您的构建配置.

它将从相应配置的appSettings部分获取配置设置.

  • @Patrick - 您不需要八达通或任何特殊添加到您的项目中.您可以使用Web配置转换(http://www.c-sharpcorner.com/UploadFile/amit12345/web-config-transformation/)使您的web.config具有不同的应用程序设置值,具体取决于您的构建配置(调试,释放等).您可以使用这些来更改URL,具体取决于您部署到的位置. (2认同)
  • @Patrick看到这个,我添加了更多内容,希望这能满足你的问题 (2认同)
  • @AkshayBheda - 你的答案很好!+1给你:) (2认同)

Nee*_*mar 8

使用<appSettings>web.config中的标记,您可以支持一个文件属性,该属性将使用自己的一组键/值加载外部配置.这些将覆盖您在web.config中的任何设置或添加到它们.

例如;

<appSettings file=".\EnvironmentSpecificConfigurations\dev.config">

<appSettings file=".\EnvironmentSpecificConfigurations\qa.config">

<appSettings file=".\EnvironmentSpecificConfigurations\prod.config">
Run Code Online (Sandbox Code Playgroud)

在.config文件中

  <appSettings>
    <add key="webaddress" value="yourwebsite.com"/>
  </appSettings>
Run Code Online (Sandbox Code Playgroud)

Aspx

<a href="<%=ConfigurationManager.AppSettings["webAddress"]%>">L??ink</a>
Run Code Online (Sandbox Code Playgroud)