我正在开发一个我继承的 ASP.NET MVC 应用程序。该应用程序使用 Dictionary<string, string>
对于 Translations
。那Dictionary
存储在 Application
目的。目前,我有以下内容:
@foreach (var key in Model.MyDictionary.Keys)
{
var definition = Model.MyDictionary[key];
ViewDataDictionary viewData = new ViewDataDictionary();
viewData["key"] = key;
viewData["value"] = ((Dictionary<string, string>)(HttpContext.Current.Application["Translations"]))[key];
Html.RenderPartial("~/Views/Shared/_Definition.cshtml", definition, viewData);
}
此方法有效,除非 key
未在 Translations
中找到。我怎样才能优雅地确保 key 存在于 Translations
中我的 Razor 代码中的字典?我似乎无法找到一个好的方法来做到这一点。
感谢您的帮助,祝您节日快乐。
最佳答案
您只需检查该键是否存在于字典
中即可。
@{
var translations = ((Dictionary<string, string>)(HttpContext.Current.Application["Translations"]));
}
@foreach (var key in Model.MyDictionary.Keys)
{
var definition = Model.MyDictionary[key];
ViewDataDictionary viewData = new ViewDataDictionary();
viewData["key"] = key;
viewData["value"] = translations.ContainsKey(key) ? translations[key] : string.Empty;
Html.RenderPartial("~/Views/Shared/_Definition.cshtml", definition, viewData);
}
我不喜欢在 View 中进行任何计算,但这应该可行。如果键不存在,将返回空字符串。
关于asp.net-mvc - 在 ASP.NET MVC 中检查 Razor 中的字典键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27623066/