如何管理ASP.. NET参数和Javascript键

How to manage ASP.NET parameters and Javascript keys

本文关键字:参数 NET Javascript ASP 何管理 管理      更新时间:2023-09-26

这是我的场景。

我使用ASP。NET MVC 3与HTML, CSS, JavaScript/JQuery一起制作web应用程序。我使用Visual Studio 2010

我们已经发布了该产品(1.0版本),但是现在我们处于项目的"维护"模式,我有一种感觉,随着项目添加了新功能,维护c# (ASP. js)和c# . js之间的常量集将变得更加困难。. NET MVC)和JavaScript。

例如,在JavaScript中我将创建一个$。post并将其链接到MVC url控制器/动作,然后我将传入参数{key1: value1, key2: value2}

问题是,如果c#参数名改变,或者参数在签名中的位置改变,我只会在运行时知道JavaScript需要更新(我假设我是一个程序员,不太了解架构,在运行前不能这样做)。

所以我的问题是,你如何更容易地管理JavaScript方面,以便我可以保持"同步"与c#方面的变化。编译器可以以某种方式为我做这件事,或者有一个插件可以帮助我吗?

谢谢。

你的问题问的是同步c#常量和JavaScript常量,但随后也谈到了参数名称和位置。

在MVC世界中,参数的位置比名称更重要,而且我还没有找到一种很好的方法来保持这些同步,除非进行广泛的单元和集成测试。你在做那些检查,对吧?;)

就实际的常量和枚举而言,我已经使用T4模板为我需要的常量/枚举生成.cs和(命名空间). js文件(在我的情况下,从数据库中,但也可以很容易地是其他任何东西)。

我想不出任何简单的方法,但这里有一些可能会有所帮助。当我通常开发一些网站时,首先,我尽量在视图中编写尽可能少的javascript代码,并将它们全部放在。js文件中,这样你就可以确保你可以重用许多代码,并且因为所有代码都是纯javascript,所以不会有任何问题。我还在数据库中保留了所有操作及其控制器和区域名称的记录,并将它们用于管理权限和安全问题。对于您的问题,您可以将所有这些方法添加到数据库中,然后用一段代码检查该方法是否存在。

添加到DB:(在基本控制器中,所以你不需要手动做任何事情)

protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            var area = filterContext.RouteData.DataTokens["area"];
            string areaName = area != null ? area.ToString() : "";
            var controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
            string actionName = filterContext.ActionDescriptor.ActionName;
           //Add to DB
            base.OnActionExecuting(filterContext);
        } 

检查是否存在:

bool exist = false;
 try
 {
      HttpWebRequest request = (HttpWebRequest)System.Net.WebRequest.Create("http://www.example.com/image.jpg");
      using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
      {
           exist = response.StatusCode == HttpStatusCode.OK;
      }
 }
 catch
 {
 }

您最好的选择是集成测试。您将能够准确地测试用户将执行的操作。对于编写集成测试,Seleno是一个很好的选择(它封装了Selenium)。

值得一做。如果您有良好的集成测试覆盖率,您将在生产中遇到更少的错误。