Bevor ich diese Frage gestellt habe, habe ich auch viele Beispiele gesucht und ausprobiert.MVC4 AngularJS Entfernen von # von URLs in Bereichen Anwendungen
Für mein Problem gab es eine ähnliche POST Aber es funktioniert auch nicht.
Dies ist die Struktur meiner gesamten Anwendung:
Hier ist die Struktur der Admin-Bereich:
Projekt hat zwei Anwendungen Jetzt One For-Client und eine andere für Admin: Admin wird durch Bereiche verwaltet
Ich habe Angular 1.3.5 verwendet und es wird innerhalb der Bereiche verwendet.
Die Landing Page Index Seite von Home Controller Path: - Bereiche/Admin/Ansichten/Home/Index.cshtml
Das Layout ist _Layout Pfad: Flaechen/Admin/Ansichten/Shared/_Layout.cshtml
RouteConfig.cs Datei Innen App_Start Folder:
namespace StockManagment
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces : new []{"StockManagment.Controllers"}
);
}
}
}
AdminAreaRegistration.cs
namespace StockManagment.Areas.Admin
{
public class AdminAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Admin";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new [] {"StockManagment.Areas.Admin.Controllers"}
);
}
}
}
HTML5MODE Für # Formular URL
myApp.config(["$locationProvider", function ($locationProvider) {
$locationProvider.html5Mode(true);
}]);
Basis-Tag in _Layout Seite entfernen:
<base href="/">
Web.config Code Of Admin Areas
<rewrite>
<rules>
<rule name="Main Rule" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/" />
</rule>
</rules>
</rewrite>
Wenn ich Versuchen Sie es mit Admin Side To Access Diese URL: http://localhost:8917/Admin/Home/Index
I t Lädt die Website unter: localhost: 8917/
Und wenn ich aktualisieren die Seite lädt es den ursprünglichen Inhalt, d. h. die Client-Seite Home Page.
Wohin gehe ich falsch?
Dank im Voraus ...
Edit 1:
i den Rewrite-Code in Web entfernt.config-i verwenden es, weil ich es sah in einem anderen Beitrag
vor der Verwendung
myApp.config(["$locationProvider", function ($locationProvider) {
$locationProvider.html5Mode(true);
}]);
und
<base href="@Request.Url.AbsolutePath" />
Admin-Seite Startseite die URL zuzugreifen war: - http://localhost:8917/Admin/Home/Index#/
nach dem Hinzufügen Der obige Code ist: - http://localhost:8917/Admin/Home/
ac beitung Kategorien Seite
Kategorien vor Code: - http://localhost:8917/Admin/Home/Index#/Categories
Kategorien nach Code: - http://localhost:8917/Admin/Home/Categories
, wenn ich es aktualisieren Fehler
Server-Fehler gibt in Anwendung '/'. Die Ressource kann nicht gefunden werden. Beschreibung: HTTP 404. Die Ressource, nach der Sie suchen (oder eine ihrer Abhängigkeiten), wurde möglicherweise entfernt, der Name wurde geändert oder ist vorübergehend nicht verfügbar. Bitte überprüfen Sie die folgende URL und vergewissern Sie sich, dass sie richtig geschrieben ist.
Angeforderte URL:/Admin/Home/Kategorien
Ich denke, es ist wegen der Basis-URL, versuchen Sie es mit content.url - http://stackoverflow.com/questions/23998867/angular-app-on-iis-8-x-virtual-directory-has-strange- URL-Verhalten/23999511 # 23999511 oder base href = "@ Request.Url.AbsolutePath "/> –
@ ZivWeissman funktioniert und entfernt die # von der URL, aber wenn ich es aktualisiere gibt Fehler – 3gth
Ich habe das gleiche Problem, haben Sie eine Lösung gefunden? – kbaccouche