Skip to main content
 首页 » 编程设计

c#之在 web.config 中添加 URL 并在 Controller 中访问它

2024年02月04日34del

我有一个这样的 URL:

https://bachqy.desk.info/automalog.aspx?user=""&carid=""

在我的 Controller 中,我有一个 action 方法,它传递上面的两个参数,以重定向 URL。我不想在 Controller 中对 URL 进行硬编码。

public ActionResult NavigateToCar(string userId, string CarID) 
{ 
    return new RedirectResult( 
        "https://bachqy.desk.info/automalog.aspx?user="+userId+"&carid="+CarID); 
} 

在 Controller 内部,在 ActionResult 中,如何从 web.config 访问 URL 并传递以下参数?

如何在 ASP MVC 中传递 web.config 中的 URL 并访问 URL 并在 Controller 中传递参数?

请您参考如下方法:

使用ConfigurationManager.AppSettings从您的“Web.config”文件中读取。

要定义您的 URL,您可以在该文件中使用类似这样的内容:

<appSettings> 
    <add  
       name="MyUrlFromWebConfig"  
       value="https://bachqy.desk.info/automalog.aspx?user={UserID}&amp;carid={CarID}" /> 
</appSettings> 

(确保将 & 转义/编码为 & 以保持您的 XML 有效)

稍后在您的代码中,使用:

public ActionResult NavigateToCar(string userId, string CarID) 
{ 
    var url = ConfigurationManager.AppSetting["MyUrlFromWebConfig"]; 
 
    url = url.Replace("{UserID}", Server.UrlEncode(userId)); 
    url = url.Replace("{CarID}", Server.UrlEncode(carID)); 
 
    return new RedirectResult(url); 
} 

(还要确保对替换字符串进行 URL 编码,使其仍然具有有效的 URL)


我会在“Web.config”文件的 URL 中使用 {0} 和 {1} 投票反对,然后做您自己的占位符和替换(如我上面示例中的 {UserID})更具表现力,而不是依赖您的 String.Format 调用来获得正确的编号和顺序来自“Web.config”条目的格式参数。