因此,我的老闆有這個瘋狂的想法 - 整個網站在單個頁面上工作。到目前爲止 - 仍然沒問題,但這裏是: - 不同的頁面有不同的內容(像往常一樣)div
,當某些div被點擊(或鏈接)時,一些div展開/摺疊,在揭示不同內容的方式。這很好,但是......將不同的HTML代碼加載到不同鏈接點擊的單個頁面上
他並不想使用JavaScript或任何爲網站的動態視圖(「因爲我在2個星期我離開,他和其他員工不能夠JS的,因此如果需要,不能改進/維護)
他的想法是將HTML代碼存儲在數據庫中,然後點擊某個鏈接 - 使用特定的HTML重新加載頁面。因此,對於每個頁面,沒有不同的
.html
文件,但是對於所有這些文件只有一個文件。
的問題是,它爲我打開,最初的第一頁,但後來當我打電話另一個頁面,它就會被扭曲,因爲我調用函數,檢索的HTML,但對方電話之前加載的頁面仍然存在,所以它再次調用。這裏的樣本,讓你明白:
<script runat="server" type="text/C#">
public string getPage(string name)
{
string page = "null";
switch (name)
{
case "media":
page = getMediaPage(); <!-- just function from the code-behind that retrieves the html code from the DB and passes it to the page -->
break;
case "home":
page = getHomePage(); <!-- just function from the code-behind that retrieves the html code from the DB and passes it to the page -->
break;
}
return page;
}
</script>
</head>
<body onload="addEvents();">
<form id="form1" runat="server">
<div id="parent">
<div id="presentation">
SomeCompany ApS Street3 | CITY | [email protected] TLF: 999999
</div>
<%=getPage("home") %>
</div>
</form>
所以這是初始頁面將會如何,然後就在parent
DIV我將呼籲其他頁面的HTML。 HTML存儲在DB中的一個例子:
<div id="mainmenu">
<b>HOME</b>
<br />
PRODUCTS
<br />
<a href="<%=getPage("media")%>">SUPPORT</a>
<br />
CONTACT
<br />
ABOUT
<br />
</div>
<div id="logo">
</div>
因此,我將這段代碼稱爲頁面中的頁面。扭曲的發生是因爲我點擊了<a href="<%=getPage("media")%>">
,所以它正常加載頁面,但有<%=getPage("home") %>
靜態站在頁面,所有的時間,因爲我需要從某處開始,它會嘗試再次加載前一頁,並。 .. 服務器錯誤。
我知道這有點愚蠢的想法,但我不能再與他爭論。
所以我的問題是 - 有辦法處理所有這些與某種OnClick(Event e)
或某種其他方式,調用不同的功能(因爲我已經開始)。 或者我應該告訴老闆,它不會這樣工作...
告訴你的老闆僱用一個知道JS的人 – BenM
他想要的是一個」單頁應用程序「或SPA。 Studio 2012有一個模板,可以給你一個很好的方法來做到這一點的想法,我相信還有其他的方法來完成這個任務並不可怕,但是......將靜態html存儲在數據庫中是不好的。破壞關注點分離的最糟糕的方法之一 –
@JasonP - 是的,但是我正在使用VS2010,並且我並不想處理MVC等等 – Syspect