Я пытаюсь интегрировать проект в уже существующее решение.
Проект запуска в решении называется «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")
Я все равно хотел бы услышать лучшее решение, чем это!