Globalization difference in inline tags in ASP.NET

后端 未结 2 1190
梦如初夏
梦如初夏 2021-01-06 02:27

Is there any advantage/downfalls between using the inline write tag instead of the resource tag? Example:

<%=Resources.Site.SampleString %>


        
相关标签:
2条回答
  • 2021-01-06 03:00

    These methods will function exactly the same. The latter simply calls first one; there is a reason why strongly-typed resources access code is being generated in the background. Therefore you can use whatever method you please.

    By the way, there is also another way - by using meta:resourcekey attribute. So you should be able to write:

    <asp:Literal id="Literal1" runat="server"
                 meta:resourcekey="SampleString" text="Default one" />
    

    and it all should work exactly the same.

    EDIT on implicit Localization.

    What I forgot to mention, is that with meta:resourcekey certain conditions have to be met. The conditions are:

    • Values are taken from App_LocalResources, therefore related resource file need to exist
    • Related resource file name must be pagename.resx, for example: Default.aspx.resx, Default.aspx.es.resx
    • The resource file must contain keys in form of resourcekey.propertyname, for example SampleString.Text, SampleString.ID (although I wouldn't localize control ID's)
    • Because of how resources are generated, the key mentioned above must exist in invariant resource file (Default.aspx.resx), or it won't be localized.
    0 讨论(0)
  • 2021-01-06 03:05

    I realised after some time that the <%=Resources.Site.SampleString %> method does not have designer support (which is understandable). This doesn't bother me, but it is a difference (for future readers).

    So if you need or want designer support, the second option would be necessary.

    0 讨论(0)
提交回复
热议问题