Asp.net mvc: 需要对象引用在 [Required(ErrorMessage) 中调用函数时出错
Asp.net mvc: an object reference is required Error while calling a function in [Required(ErrorMessage)
我正在 asp.net-mvc 中创建一个 Web 应用程序,我在其中从我的模型发送一个 Required ErrorMessage,但问题是,我想根据用户的偏好翻译消息,
所以我做了类似下面的事情
[Required(ErrorMessage = convertErrorMessage("Text to translate"))]
public string Reviews { get; set; }
public string convertErrorMessage(string text)
{
//convertingText in different language
return convertedText;
}
但我收到以下错误
an object reference is required for non static field
下一行
[Required(ErrorMessage = convertErrorMessage("Text to translate"))]
如果我想实现这个目标,我该怎么做?
您不能调用方法来初始化属性,因为这些值必须在编译时已知。不过还有两种可能的方法:
ASP.NET MVC 支持标准的本地化方式,这是推荐的方式。这是一个非常广泛的话题,所以我只能在这里留下几个链接[1], [2]。请注意,即使您使用的 RequiredAttribute 也具有属性 ErrorMessageResourceName
和 ErrorMessageResourceType
- 这些强烈提示您应该为标准任务使用标准工具。
如果您仍然想坚持现有的,请定义您自己的属性并在其中实现您的自定义逻辑:
class RequiredLocalizedAttribute : RequiredAttribute {
// override ErrorMessage get
// or ErrorMessageString get
}
但是,我强烈建议改为考虑选项 1。您可能需要更多时间来学习和实现它,这不会浪费时间,并且随着应用程序的增长可能会为您省去很多麻烦
我正在 asp.net-mvc 中创建一个 Web 应用程序,我在其中从我的模型发送一个 Required ErrorMessage,但问题是,我想根据用户的偏好翻译消息,
所以我做了类似下面的事情
[Required(ErrorMessage = convertErrorMessage("Text to translate"))]
public string Reviews { get; set; }
public string convertErrorMessage(string text)
{
//convertingText in different language
return convertedText;
}
但我收到以下错误
an object reference is required for non static field
下一行
[Required(ErrorMessage = convertErrorMessage("Text to translate"))]
如果我想实现这个目标,我该怎么做?
您不能调用方法来初始化属性,因为这些值必须在编译时已知。不过还有两种可能的方法:
ASP.NET MVC 支持标准的本地化方式,这是推荐的方式。这是一个非常广泛的话题,所以我只能在这里留下几个链接[1], [2]。请注意,即使您使用的 RequiredAttribute 也具有属性
ErrorMessageResourceName
和ErrorMessageResourceType
- 这些强烈提示您应该为标准任务使用标准工具。如果您仍然想坚持现有的,请定义您自己的属性并在其中实现您的自定义逻辑:
class RequiredLocalizedAttribute : RequiredAttribute { // override ErrorMessage get // or ErrorMessageString get }
但是,我强烈建议改为考虑选项 1。您可能需要更多时间来学习和实现它,这不会浪费时间,并且随着应用程序的增长可能会为您省去很多麻烦