Wir haben eine alte benutzerdefinierte ASP-Intranetseite, in der wir auf unsere internen Datenbanken zugreifen und eine HTML-Seite einrichten, um andere Intranetsites wie ccnet, wiki laden zu können usw. mit < iframe/> Tags, über das statische Menü oben auf der Seite.
Beispiel Legacy-Code:
Menu.asp:Laden einer Nicht-MVC-Intranetwebseite in MVC View
<body topmargin="0" and leftmargin="0">
<div id="header">
<a href="default.asp" id="logo">
<img src="Images/Home.png" alt="Bam! Home" width="40" height="40"/>
</a>
<ul id="NavMenu">
<li><a>DB tasks</a>
<ul>
<li><a href="ccnet.asp?Target=RestoreBak">Restore .bak</a></li>
<li><a href="ccnet.asp?Target=RestoreSqb">Restore .sqb</a></li>
<li><a href="ccnet.asp?Target=CreateDbSnapshot">Create Snapshot</a></li>
<li><a href="ccnet.asp?Target=RevertToDbSnapshot">Revert to Snapshot</a></li>
<li><a href="ccnet.asp?Target=DeleteDbSnapshot">Delete Snapshot</a></li>
</ul>
</li>
<li><a>General</a>
<ul>
<li><a href="ccnet.asp?Target=Wiki">Wiki</a></li>
</ul>
</li>
</ul>
</div>
ccnet.asp (die Intranet-Seite in einem Iframe laden das Menü zu behalten):
<!-- #include file = "common.asp" -->
<html>
<head>
<title><%
'Common DB tasks:
if Request("Target") = "CreateDbSnapshot" then
Response.write "Create Db Snapshot"
elseif Request("Target") = "RevertToDbSnapshot" then
Response.write "Revert To Db Snapshot"
elseif Request("Target") = "DeleteDbSnapshot" then
Response.write "Delete Db Snapshot"
elseif Request("Target") = "RestoreBak" then
Response.write "Restore Bak"
elseif Request("Target") = "RestoreSqb" then
Response.write "Restore Sqb"
'General
elseif Request("Target") = "Wiki" then
Response.write "Wiki"
'Final just incase there is an unavailable option:
else
response.write "DBServer CCNet"
end if
%></title>
<link rel="stylesheet" type="text/css" href="common.css"/>
</head>
<!--#include file ="menu.asp"-->
<body>
<%
dim iFrameTargetSrc
'Common DB tasks:
if Request("Target") = "CreateDbSnapshot" then
iFrameTargetSrc = "http://DBServer/ccnet/server/local/project/1.%20Create%20DB%20Snapshot/ViewProjectReport.aspx"
elseif Request("Target") = "RevertToDbSnapshot" then
iFrameTargetSrc = "http://DBServer/ccnet/server/local/project/3.%20Delete%20DB%20Snapshot/ViewProjectReport.aspx"
elseif Request("Target") = "DeleteDbSnapshot" then
iFrameTargetSrc = "http://DBServer/ccnet/server/local/project/FS%20Backup%20SQB/ViewProjectReport.aspx"
elseif Request("Target") = "RestoreBak" then
iFrameTargetSrc = "http://DBServer/ccnet/server/local/project/Restore%20DB/ViewProjectReport.aspx"
elseif Request("Target") = "RestoreSqb" then
iFrameTargetSrc = "http://DBServer/ccnet/server/local/project/Restore%20SQB/ViewProjectReport.aspx"
'General
elseif Request("Target") = "Wiki" then
iFrameTargetSrc = "http://wiki/sites/CompanyWiki/SitePages/newhome.aspx"
'Final just incase there is an unavailable option:
else
iFrameTargetSrc = "http://DBServer/ccnet/ViewFarmReport.aspx"
response.write "Cannot find requested target " & Request("Target") & "."
end if
%>
<iframe src="<%response.write iFrameTargetSrc%>" seamless="true" frameborder="0" width="100%" height="94%"></iframe>
</body>
</html>
Wir begonnen haben, zu konvertieren Diese Legacy-Intranet-Site für MVC5, aber was ich nicht herausfinden kann, ist, wie man eine Ansicht erstellen kann, die die ccnet- und andere Intranet-Seiten in einer Ansicht laden kann, die die gesamte Seite umfasst, wenn der Link aus dem Menü ausgewählt wird. Ansichten benötigen die Daten vom Controller. Wie übergebe ich die Informationen an den Controller und lade die Ansicht mit der Nicht-MVC-Intranet-Site?
Ich versuche, die Menüoption auf der Seite _Layout.cshtml hinzuzufügen, habe aber nichts gefunden, das mich in die richtige Richtung weisen kann, wie dies zu implementieren ist.
Jeder Ratschlag, der einen Link enthält, der mir zeigen kann, wie man mit Beispielen oder Lösungen hier veröffentlicht wird, wird sehr geschätzt.
Die Seite scheint den iframe, aber nicht die src-Verknüpfung zu enthalten.
Ok, ich habe es funktioniert, indem ich das Menü folgendermaßen geändert habe: