asp.net 在web.config中添加URL并在控制器中访问它

jjhzyzn0  于 2023-06-07  发布在  .NET
关注(0)|答案(2)|浏览(194)

我有一个这样的URL:
https://bachqy.desk.info/automalog.aspx?user=""&carid=""
在我的控制器中,我有一个action方法,它传递了上面的两个参数,以重定向URL。我不想在控制器中硬编码URL。

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

在控制器内部,在ActionResult中,我如何从web.config访问URL并传递以下参数?
我如何在web.config中传递URL,在ASPMVC中访问URL并在控制器中传递参数?

slwdgvem

slwdgvem1#

使用ConfigurationManager.AppSettings读取“Web.config”文件。
要定义URL,您可以在该文件中使用类似于以下内容的内容:

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

(Be确保将&转义/编码为&amp;以保持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);
}

(Also确保对替换字符串进行URL编码,以使其仍然具有有效的URL)
我会投票 * 反对 * 在“Web.config”文件的URL中使用{0}{1},并做自己的占位符和替换(就像我上面例子中的{UserID}),以更有表现力,而不依赖于您的String.Format调用来获得来自“Web.config”条目的格式参数的正确数量和顺序。

bwitn5fc

bwitn5fc2#

在web.config中

<appSettings>
    <add key="urlPath" value="https://stackoverflow.com"/>
</appSettings>

输入控制器

var path = ConfigurationManager.AppSettings["urlPath"];

相关问题