2016-10-10 3 views
0

Visual Studio 2015と.NET MVC 4.5.2でプロジェクトを構築しましたが、最近はAngular 2をフロントエンドとして使用し始めました。 Angular 2を導入する前に、私は/ Plan/Dashboardや/ Plan/Productionのようなルートを持っていました。私はJQuery/Ajaxを使用してフルページの更新を行うのではなく、リンクをクリックするとコンテンツを置き換えますが、URLは決して変更されないので、前方/後方/更新をクリックすることは期待通りには行えません。 Angular 2を使用しているので、URLが適切に変更されて、戻る/進むボタンが機能しますが、ページをリフレッシュすることはできません。たとえば、Angular 2ルーティングがURLを/ Plan/Productionから/ Plan/Production/Sellingに変更してリフレッシュすると、.NETはそのルートを検索して見つけることができないので、URLはhttps://localhost:44301/Error/NotFound?aspxerrorpath=/Plan/Production/Sellingに変わります内容は単に「エラー」と表示されます。私の質問は、/ Plan/Production /で始まるルートを無視するように.NETに指示し、Angular 2がそのルーティングを処理できるようにする方法はありますか?私は他のページでもこれを行う必要がありますが、今は/ Plan/Productionに焦点を当てています。.NET MVC 4.5.2:特定のルートを無視し、角度2でそれらを処理させます

答えて

2

はあなたのweb.configファイルでこのような何かを試してみてください:

<configuration> 
    <system.webServer> 
     <rewrite> 
      <rules> 
       <rule name="Redirect to NG2" patternSyntax="Wildcard" stopProcessing="true"> 
        <match url="Plan/Production/*" /> 
        <action type="Rewrite" url="/Plan/Production" /> 
        <conditions> 
         <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
        </conditions> 
       </rule> 
      </rules> 
     </rewrite> 
    </system.webServer> 
</configuration> 

あなたはURL書き換えモジュールは、これを使用するためにインストールする必要があります。

+0

これは機能しませんでした。そこに別のルールがありましたが、それが何らかの理由でそれと矛盾しているのだろうか? Brett

+1

stopProcessing = "true" があることを意味しますそのルールが処理されるとき、他のルールは後で処理されません。 httpsルールでfalseに設定してください。 –

+0

私はそれを試しましたが、残念ながらそれは何も変更されていません – Brett

関連する問題