Добавьте URL в web.config и получите доступ к нему в контроллере - PullRequest
1 голос
/ 19 сентября 2019

У меня есть URL-адрес, подобный следующему:

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

В моем контроллере у меня есть метод действия, который передает два параметра, описанных выше, для перенаправленияURL.Я не хочу жестко кодировать URL в контроллере.

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

Внутри контроллера, в ActionResult, как я могу получить доступ к URL из web.config и передать следующие параметры?

Как я могу передать URL в сети.настроить и получить доступ к URL и передать параметры в контроллере в ASP MVC?

Ответы [ 2 ]

4 голосов
/ 19 сентября 2019

Используйте ConfigurationManager.AppSettings для чтения из файла "Web.config".

Чтобы определить свой URL, вы можете использовать что-то вроде этого в этом файле:

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

(Обязательно экранируйте / закодируйте & как &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);
}

(такжеОбязательно закодируйте URL для замены строк, чтобы все еще иметь действительный URL)


Я бы проголосовал против , используя {0} и {1} в URL в "Сети".config », и сделайте свои собственные заполнители и замену (например, {UserID} в моем примере выше), чтобы сделать его более выразительным и не полагаться на ваш вызов String.Format для получения правильного числа и порядка аргументов формата, поступающих из« Web ».config "запись.

0 голосов
/ 19 сентября 2019

в web.config

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

в контроллере

var path = ConfigurationManager.AppSettings["urlPath"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...