我有一个用Classic ASP,ASP.NET和ASP.NET MVC编写的大型网站/应用程序。 我有一个顶部菜单,有很多HTML CSS JS,还有一些conifiguration(可见或不...) 和很多动态链接。
所以问题是当我必须更新菜单时我必须更新3个文件,一个包含在经典ASP中,一个ASCX用户控件在asp.net中,一个部分视图在asp.NET MVC中
我讨厌代码重复,所以可以只使用一个组件吗? 我听说过Com,但我不知道从哪里开始。
感谢您的帮助
编辑:我想知道使用.net对象,它可以生成一个包含我需要的所有html的字符串,然后将它放在视图MVC和asp.net页面中 但如何在Classic ASP中使用它?
答案 0 :(得分:1)
没有什么可以阻止您使用 webapi控制器来公开此功能; webapi控制器会将json
或xml
菜单结构返回给客户端浏览器,这反过来将通过将json注入浏览器DOM并使用CSS进行样式化来呈现。
经典ASP和MVC ASP.NET将使用相同的javascript和css。
答案 1 :(得分:0)
猜猜,你可以在asp.net MVC中制作一个动作方法来渲染动态菜单,并从网站各个部分的javascript中加载AJAX吗?
<强>更新强>
您可以在经典ASP中向前面提到的ASP.NET MVC处理程序发出HTTP GET请求,如果它不是非常动态的,则缓存结果。无论如何,如果它在同一台服务器内,它应该非常快。我想,请求看起来像this answer
答案 2 :(得分:0)
我也在使用与您的情况非常相似的遗留应用程序,生活有多糟糕:(
我会根据您的情况选择XML
/ XSLT
。
我将创建一个包含所有菜单详细信息的XML文件,并使用XSLT从XML生成HTML。我可以在所有这三种技术中轻松使用XML和XSLT。因此,每次需要更改时,都必须更改XML或XSLT文件。
你甚至可以创建一个使用XML / XSLT方法的简单.NET组件,它可以很容易地在ASP.NET Web窗体,ASP.NET MVC(在自定义视图引擎中?)和经典的asp中使用(你)必须注册)。