2016-04-01 14 views
0

İç 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

cevap

0

Sonra menü için aşağıdaki kullanmak

<ul> 
    <li><a href="@Url.Action("LoadExternalSystem",new {identifier="wiki"})">wiki</a></li> 
    <li><a href="@Url.Action("LoadExternalSystem",new {identifier="othersystem"})">Other system</a></li> 
</ul> 
+0

Sayfada iframe var, ancak src bağlantısı yok gibi görünüyor. Sascha

+0

Tamam, i aşağıdaki menü değiştirerek çalışması için var:

  • @ Html.ActionLink ("Wiki", "LoadExternalSystem", "Home", yeni {identifier = "Wiki"}, null)
  • Sadece çok küçük olan iframe boyutunu değiştirmem gerekiyor. – Sascha