Response.Rirectirect из одного веб-проекта в другой в Visual Studio - PullRequest
3 голосов
/ 15 апреля 2011

Я пытаюсь интегрировать проект в уже существующее решение.

Проект запуска в решении называется «Foo». Записывается в виртуальный путь "/ csweb /." Когда этот проект запускается, он загружает /csweb/Default.aspx. Это текущая, неизмененная домашняя страница.

Я пытаюсь перенаправить на другую домашнюю страницу в другом проекте.

Я добавил второй проект в решение под названием «Бар». В свойствах проекта я сказал ему написать в виртуальный путь "/ csweb /". Он не помечен как стартовый проект, и при этом не существует нескольких стартовых проектов - только Foo. Домашняя страница бара доступна, когда Бар помечен как стартовый проект. Его домашняя страница представлена ​​localhost: port / csweb / Default.aspx

Я бы хотел перенаправить в Bar Default.aspx, используя Foo в качестве стартового проекта. Я согласен с переименованием Bar в Default.aspx во что-то недвусмысленное, если это облегчит проблему.

Если я попытаюсь HttpContext.Response.Redirect("~/Default.aspx"), то это явно приведет меня к Foo / Default.aspx, а не к Bar / Default.aspx, но URL в браузере будет localhost:port/csweb/Default.aspx. Там нет никаких указаний на то, чтобы быть внутри проекта, вполне понятно. Если я переименую Bar / Default.aspx в Bar / UniqueName.aspx и попытаюсь HttpContext.Response.Redirect("~/UniqueName.aspx"), то страница не будет найдена.

Какой правильный звонок здесь? Нужно ли мне настроить Bar как существующий виртуальный каталог в IIS, чтобы я мог указать более полное имя пути, чтобы избежать двусмысленности? Или мне нужно сделать что-то необычное с несколькими веб-проектами для запуска, чтобы оно было доступно?

Спасибо за любые советы по этому запутанному вопросу.

РЕДАКТИРОВАТЬ: В итоге я просто добавил другую папку в проект Foo и переместил содержимое проекта Bar в эту папку. Тогда я смогу сделать HttpContext.Response.Redirect("~/Bar/Bar's Default.aspx") Я все равно хотел бы услышать лучшее решение, чем это!

1 Ответ

2 голосов
/ 15 апреля 2011

Попробуйте HttpContext.Response.Redirect("/csweb/Default.aspx").Тильда «~» в вашем текущем перенаправлении говорит, что нужно начинать в домашней папке этого приложения.Удалив его, вы можете перенаправить его в другое место на вашем сайте.

Вы также можете полностью квалифицировать перенаправление, чтобы перейти на совершенно другой сайт, если хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...