У меня есть веб-приложение ASP.NET с главной страницей, содержащей заголовок , , вкладки , BodyContent (сюда попадает содержимое каждой страницы), нижний колонтитул заполнители для пользовательских элементов управления (верхний колонтитул, вкладки, нижний колонтитул) и содержимого страницы (MainContent). Пользовательский элемент управления вкладками имеет неупорядоченный список вкладок, например, давайте рассмотрим текст вкладки как TabOne , TabTwo , TabFour , по одному щелчку каждой вкладки соответствующая веб-страница загружается с помощь javascript функция с строкой кода ниже:
window.location.href = "TabOne.aspx";
Теперь я получил новый запрос на добавление вкладки TabThree для загрузки угловой страницы, показывающей верхний колонтитул, вкладки, нижний колонтитул и BodyContent, содержащее содержимое углового приложения, т. Е. По нажатию TabThree , мне нужно загрузить приложение angular в существующее веб-приложение ASP.NET, аналогичное справочной ссылке ( Как включить внешнее приложение Angular 2 в страницу ASP.NET Webforms aspx )
//TabThree.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/Base.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Programs.Default" %>
<%@ MasterType VirtualPath="~/Base.Master" %>
<asp:Content ID="Header" ContentPlaceHolderID="Header" runat="server">
<%--<base href="/AngularComponents/">--%> //No difference with uncommenting the base href
<%--<base href="/">--%>
<script type="text/javascript" src="../Tabs.js"></script>
</asp:Content>
<asp:Content ID="Tab" ContentPlaceHolderID="Tab" runat="server">
</asp:Content>
<asp:Content ID="BodyContent" ContentPlaceHolderID="BodyContent" runat="server">
<div id="pageContent">
<app-root>Loading...</app-root>
<script type="text/javascript" src="AngularModules/inline.bundle.js"></script>
<script type="text/javascript" src="AngularModules/main.bundle.js"></script>
<script type="text/javascript" src="AngularModules/polyfills.bundle.js"></script>
<script type="text/javascript" src="AngularModules/vendor.bundle.js"></script>
<link href="AngularModules/styles.bundle.css" rel="stylesheet" />
</div>
</asp:Content>
<asp:Content ID="Footer" ContentPlaceHolderID="Footer" runat="server">
</asp:Content>
Если я запускаю угловое приложение независимо, оно нормально запускается с помощью команды ng serve -o и прекрасно подходит по URL (http://localhost:4200/#/TabThree?id=TID100). Теперь я скопировал dist Папка в рабочую область веб-приложения ASP.NET и переименована в AngularModules . При нажатии TabThree Я попытался загрузить угловой компонент в Bodycontent одним из следующих способов. строка кода для навигации:
window.location.href = "TabThree.aspx/#/TabThree?ID=TID100";
window.location.href = "TabThree.aspx?AngularComponents/#/TabThree?ID=TID100";
Содержимое Head загружается нормально, но Bodycontent, который должен загружать угловой компонент TabThree , пусто, а ошибка консоли регистрируется следующим образом:
ERROR Sys.ParameterCountException: Sys.ParameterCountException: Parameter count mismatch.
"ERROR"
{
[functions]: ,
__ proto __: { },
__zone_symbol__currentTask: { },
description: "Sys.ParameterCountException: Parameter count mismatch.",
message: "Sys.ParameterCountException: Parameter count mismatch.",
name: "Sys.ParameterCountException",
stack: "Sys.ParameterCountException: Sys.ParameterCountException: Parameter count mismatch.
at String$startsWith (http://localhost:62557/ScriptResource.axd?
d=gb2H0hcR0_2oXWpLxJmdTg2S_j-8tZAZO1r6sTjByVD4-_6_cs99E6CayZY9pi0-N-ip5bmZNlhZWaB-IG2xnFZG-NKKnY8LqkMvfx1uzDhC1zqaP8PQi4JB24Hq7urD6rwOMv6ZCQbxzc19pQ0mcl6iexnSPre_a0zN-jpBGmFTlZ5rxoZ47qCy4shfjh4T0&t=ffffffff87bbe9c7:494:12)
at startsWith
Я передал ссылку ( Включая приложение Angular2 на страницу Asp.Net Webforms ), но это тоже не решило проблему, и я не могу запустить компонент Angular как вкладку в BodyContent заполнитель.
Я изучил обе ссылочные ссылки, но у них нет правильной информации о том, как происходит маршрутизация / навигация для загрузки углового компонента на странице ASPX.
Я пробовал другие подходы, кроме упомянутых выше, которые перенаправляют всю страницу и запускают приложение Angular как отдельное, но мое требование состоит в том, чтобы вписать угловой компонент в Bodycontent TabThree.aspx страница, чтобы она соответствовала другим вкладкам / страницам.
Любая помощь в решении этой проблемы маршрутизации в гибридном приложении была бы отличной помощью, и я был бы признателен за то же самое.
Заранее спасибо !!
Я не нашел ни одного возможного дубликата для того же самого, и я также связал ссылки, надеюсь, это не помечено как дубликат.