は、次の文字列を考えてみましょう:動的変数が含まれている場合のASP .NET MVCローカリゼーション?私はそれをローカライズする必要がある場合
You need to write <b>@ViewBag.CharacterAmount</b> characters to be able to
hand-in this homework. You're still missing <b id="charactersRemaining">
@ViewBag.CharacterAmount</b> characters to reach this limit.
最善のアプローチでしょうか? string.Format
を使用すると、ASP .NET MVCがHTMLコードをエスケープし、さらには自分のリソースファイルにHTMLコードが含まれていないので、少し複雑です。しかし、私はまだJavaScriptのb
タグ内のそれらの値を参照できる必要があります。
アイデア?ローカリゼーションを行うときにこれにあなたのアプローチは何ですか?あなたがHTMLヘルパーは値のみを符号化し見ることができるように
public static class ResourcesExtensions
{
public static IHtmlString Resource(this HtmlHelper htmlHelper, string message, params object[] args)
{
var parameters = args.Select(x => htmlHelper.Encode(x)).ToArray();
return new HtmlString(string.Format(message, parameters));
}
}
:
私は保存伴わないクリーンなのですそれを行うにはどのような方法があるかわかりませんリソース内のHTMLで、 'String.Format'を使用していません。 '@ Html.Raw(String.Format(...))'だけを実行すると、値はビューエンジンによってエスケープされません。 –
リソースにHTMLを入れるのではなく、 'String.Format(" {0} "、" "+ ViewBag.CharacterAmount +" "と書いてください)のような形式で渡すことができます。 –