要在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#。我可以想到以下选项:
使用数据库。缺点:每次打DB可能不是个好主意。
在jquery中分别为消息/状态标志定义一些类/属性。缺点:重复;必须确保它们同步。
也许CMS,但不一定,将用于每一个应用
有没有更好的方法来共享jquery或C#中使用的公共消息/错误/状态?
想法?
想象一下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文件中)。然后在编译期间静态检查定义的一个位置。