我怎么能运行一个检查页面加载(服务器端)的网站,其中既包括aspx页面和mvc



我想在我工作的软件的每个页面上运行网站和数据库之间的版本一致性检查,看看是否一个或另一个是不同步的。(背景:有人可以在用户使用软件时进行升级,因此将检查限制在登录页面是不现实的-这也是为什么在软件的任何页面都需要检查的原因)。

我无法控制部署,因为客户自己在自己的硬件上托管软件。

前端是asp.net页面和MVC4的混合(逐渐用MVC取代aspx页面),所以我不能简单地在我们的内部和外部基页上运行Page_Load()检查,然后为我们的MVC页面做一些不同的事情-我宁愿不为每种页面类型重复代码。

环顾四周,我已经看到存在的MVC过滤器,这可能是这些页面的一个选项。

我一直在研究httphandler,理论上可以将请求限制在页面加载而不是静态内容。

是否有一个替代/更好的方法来做这个服务器端检查,这将有代码在一个地方,会影响aspx页面和MVC?

根据它通过检查或未通过检查时应该做的事情,您可以设置一个带有动作Check的新控制器Version

public class Version : Controller
{
  public JsonResult Check() {
    return new Json((GetWebsiteVersionNumber() == GetDatabaseVersionNumber()));
  }
}
你可以在MVC中使用@Html调用这个端点。操作在_Layout或另一个视图中,并作出相应的响应。在Web Forms端,你可以使用服务器端WebRequest类调用这个端点,并根据MasterPage PageLoad事件或其他任何你喜欢的响应采取适当的行动。

进一步,你可以从一个通用的javascript文件i(包括在WebForms和MVC客户端包括)调用端点,并使用AJAX请求获得响应并在那里处理它。

请原谅语法错误,因为我是随口写的

相关内容

最新更新