İç veritabanlarımıza erişebildiğimiz eski bir özel asp intranet sitemiz var ve ccnet, wiki gibi başka intranet sitelerini yükleyebilmek için bir html sayfası kurmayı başardık vb sayfanın üst kısmındaki statik menü aracılığıyla < iframe/> etiketlerini kullanarak.
Örnek eski kodu:
Menu.asp:MVC'de bir MVC olmayan intranet web sayfası yükleniyor
<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 (menü korumak için bir iç çerçeveye intranet sayfasını yüklemek için):
<!-- #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>
Biz dönüştürmek başladık Bu eski intranet sitesi MVC5'e göre, ancak anlayamadığım şey, ccnet ve diğer intranet site sayfalarını, menüden bağlantıyı seçerken tüm sayfayı kapsayan bir görünümde yükleyebilecek bir görünüm oluşturabilmektir. Görünümler denetleyiciden veriye ihtiyaç duyar. Bilgileri denetleyiciye nasıl iletmeliyim ve mvc olmayan intranet sitesini içeren görünümü nasıl yüklerim?
_Layout.cshtml sayfasına menü seçeneğini eklemeye çalışıyorum, ancak bunu nasıl uygulayacağınız konusunda beni yönlendirebilecek hiçbir şey bulamadım.
Burada yayınlanan örnekler veya çözümlerin nasıl kullanıldığını gösteren bir bağlantı içeren herhangi bir öneri çok takdir edilecektir.
Sen Ardından şu@{
ViewBag.Title = "LoadExternalSystem";
}
<iframe src="@ViewBag.LoadUrl"></iframe>
gibi görünüyor eylem için bir görünüm oluşturmak bu
public ActionResult LoadExternalSystem(string identifier)
{
switch (identifier.ToLower())
{
case "wiki":
{
ViewBag.LoadUrl = "http://wiki.somewhere";
break;
}
case "othersystem":
{
ViewBag.LoadUrl = "http://othersystem";
break;
}
}
return View();
}
gibi bir kontrolöre bir eylem yöntemi ekleyebilirsiniz
Sayfada iframe var, ancak src bağlantısı yok gibi görünüyor. – Sascha
Tamam, i aşağıdaki menü değiştirerek çalışması için var: