ASP.NET MVC в виртуальном каталоге

Самый простой способ - использовать сервис довольно быстро и грязно.

Создайте сервис, содержащий строковую переменную.

import { Injectable } from '@angular/core';

@Injectable()
export class SimpleService {
   public text: string = '';

   constructor() { }
}

Вы должны импортировать сервис в свой Модуль и предоставить его.

import { ComponentA } from './component-a.ts';
import { ComponentB } from './component-b.ts';
import { SimpleService } from './simple.service.ts';

@NgModule({
  declarations: [
    ComponentA,
    ComponentB
  ],
  imports: [
    ComponentA,
    ComponentB
  ],
  providers: [
      SimpleService
  ]

})
export class XYZModule { }

Тогда один компонент устанавливает значение, а другой читает его.

Компонент A

import { SimpleService } from './simple.service.ts';

constructor(private simpleService: SimpleService) { }

setText(text: string): {
    this.simpleService.text = text;
}

КомпонентB

TS-файл

import { SimpleService } from './simple.service.ts';

constructor(private simpleService: SimpleService) { }

HTML-файл

<p>{{simpleService.text}}</p>

Это все.

10
задан Evil Andy 8 October 2008 в 15:06
поделиться

4 ответа

IIS 5.1 интерпретирует Ваш URL, таким образом что его поиск папки, названной 1000 под папкой под названием Тест. Почему то, что так?

Это происходит, потому что IIS 6 только вызывает ASP.NET, когда он видит “расширение файла” в URL, это отображается на aspnet_isapi.dll (который является фильтром ISAPI C/C++, ответственным за вызов ASP.NET). Так как маршрутизацией является IHttpModule.NET по имени UrlRoutingModule, это не становится вызванным, если ASP.NET само не вызывается, который только происходит, когда aspnet_isapi.dll вызывается, который только происходит, когда существует .aspx в URL. Так, никакой .aspx, никакой UrlRoutingModule, следовательно 404.

Самое легкое решение:

Если Вы не возражаете иметь .aspx в своих URL, просто проходите свою конфигурацию маршрутизации, добавляя .aspx перед наклонной чертой вправо в каждом шаблоне. Например, используйте {контроллер} .aspx/{действие} / {идентификатор} или myapp.aspx/{контроллер} / {действие} / {идентификатор}. Не помещайте .aspx в названиях параметра фигурной скобки, или в значения 'по умолчанию', потому что это не действительно часть названия контроллера - это находится только в URL для удовлетворения IIS.

Источник: http://blog.codeville.net/2008/07/04/options-for-deploying-aspnet-mvc-to-iis-6/

4
ответ дан 4 December 2019 в 02:27
поделиться

Существует много соображений при использовании виртуальных каталогов в приложении.

Каждый конкретен, то, что большинство браузеров не отправит cookie, которые прибыли от одного виртуального каталога до другого, даже если приложения находятся на том же сервере.

1
ответ дан 4 December 2019 в 02:27
поделиться

Если Вы делаете это на Windows XP, то Вы используете IIS 5.1. Необходимо заставить ASP.NET обрабатывать запрос. Необходимо или добавить расширение маршрутов ({контроллер} .mvc/{действие} / {идентификатор}) и карта, что расширение ASP.NET или отображает все запросы на ASP.NET. http://localhost/Test работает, потому что это переходит к Default.aspx, который обрабатывается особенно в проектах MVC.

Кроме того, необходимо указать http://localhost/Test/Search/Index/1000. Контроллер и части действия не являются дополнительными, если Вы хотите указать идентификатор.

2
ответ дан 4 December 2019 в 02:27
поделиться

Попробуйте установленный виртуальный путь: щелкните правой кнопкой по mvc проекту, свойства, веб-вкладка, там вводят соответствующее местоположение.

1
ответ дан 4 December 2019 в 02:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: