簡體   English   中英

如何在包含aspx頁面和mvc的網站上對頁面加載(服務器端)進行檢查?

[英]How can I run a check on page-load (server-side) on a website which includes both aspx pages and mvc?

我想在我使用的軟件的每個頁面上的網站和數據庫之間運行版本一致性檢查,以查看一個或另一個是否不同步。 (背景:用戶在使用軟件時可能會進行升級,因此將檢查限制在登錄頁面上是不現實的-這也是為什么在軟件的任何頁面上都需要檢查的原因)。

我無法控制部署,因為客戶自己將軟件托管在自己的硬件上。

前端是asp.net頁面和MVC4的混合(逐漸用MVC替換aspx頁面),所以我不能只在內部和外部基本頁面中對Page_Load()進行檢查,然后為我們的MVC頁面-我不想重復每種頁面類型的代碼。

環顧四周,我看到了針對MVC的過濾器,這些過濾器可能是這些頁面的一個選項。

我一直在研究HttpHandlers,從理論上講可以將請求限制為頁面加載,而不是靜態內容。

是否有另一種/更好的方法來執行此服務器端檢查,這會將代碼放在一個地方,並且會影響aspx頁面和MVC?

根據通過檢查或未通過檢查時應采取的措施,可以通過操作Check設置新的控制器Version

public class Version : Controller
{
  public JsonResult Check() {
    return new Json((GetWebsiteVersionNumber() == GetDatabaseVersionNumber()));
  }
}

然后,您可以使用_Layout或其他視圖中的@ Html.Action從MVC調用此終結點,並進行相應的響應。 然后,在Web窗體一側,您可以使用服務器端WebRequest類調用此端點,並根據您的MasterPage PageLoad事件或您喜歡的其他任何地方的響應采取適當的措施。

此外,您可以從通用的javascript文件(WebForms和MVC客戶端都包括此文件)中調用端點,並使用AJAX請求獲取響應並在那里進行處理。

請原諒我的語法錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM