要在jquery或C#中使用的公共消息/错误/状态

本文关键字:消息 错误 状态 jquery 要在 | 更新日期: 2023-09-27 18:20:22

有时我们在jquery&c#。

为了保持一致性,我们可以将中的所有消息/状态标志定义为静态类,并在c#中任何需要的地方使用它。

举个例子:

C#

public class MyConstant
{
   public static string Admin = "AdminRole";
   public static string Approver= "ApproverRole";
}
if(userRole==MyConstant.Admin || userRole==MyConstant.Approver)
{
   //more work
}

jquery:

if(userRole=="AdminRole" || userRole=="ApproverRole")
{
   //more work
}

与其在jquery中硬编码msg/status,我更喜欢类似C#的方法。最好有一个共同的地方来拉客户/服务方。

如何在jquery中实现类似?更好的说法是,我如何在jquery&C#。我可以想到以下选项:

  1. 使用数据库。缺点:每次打DB可能不是个好主意。

  2. 在jquery中分别为消息/状态标志定义一些类/属性。缺点:重复;必须确保它们同步。

  3. 也许CMS,但不一定,将用于每一个应用

有没有更好的方法来共享jquery或C#中使用的公共消息/错误/状态?

想法?

要在jquery或C#中使用的公共消息/错误/状态

一个可能的解决方案是T4(文本模板)。

想象一下T4迭代每个枚举值(为什么是常量类?使用枚举!),并在JavaScript:中创建这样的对象文字

var Roles = { "AdminRole": 1, "ApproverRole": 2 };

如果您从未听说过T4,那么它就是VisualStudio模板背后的文本模板引擎。例如,实体框架使用它来生成模型类。

创建文本模板后,当您构建项目或手动运行模板时,可以将C#枚举与Visual Studio中的JavaScript对象文字同步(右键单击T4并选择"运行自定义工具")。

了解有关T4 的更多信息

我会考虑状态代码的枚举,但您可以使用字符串(没有问题)。为了更好地解决JavaScript部分使用问题,请参阅此处提供的解决方案:https://stackoverflow.com/a/2383215/3170952,即:

my.namespace.Roles = {
    ADMIN: "Admin",
    APPROVER: "Approver"
}

然后您就有了一个在JS中定义文字的地方。更好的是,您可以将C#文本编织到JS中(如果您在ASP.NET MVC视图中定义它,或者使用其他机制将C#合并到JS文件中)。然后在编译期间静态检查定义的一个位置。