我正在使用 ASP.NET MVC4 应用程序。我创建了一个包含菜单项的视图模型,我可以通过资源文件在页面中切换语言。
#region Properties
[Display(Name = "MenuText", ResourceType = typeof(App.App_Resources.Menu))]
public string menuText { get; set; }
public List<MenuItem> menuItems { get; set; }
#endregion
但是,我想在我的 .cshtml 文件中获取这个资源字符串,然后我尝试如下
@model App.Models.MenuViewModel
@Html.LabelFor(model => model.menuText) <- Success
@Html.DisplayForModel("menuText") <- Success
@Model.menuText <- Fail
我插入了一个断点,发现Model包含一个名为menuText但值为null的属性。我检查了Html还包含一个属性Model并且它的menuText也是null。但是,menuItems有项目,因为我在构造函数中分配了对象。
- 为什么无法初始化menuText并为其赋值?
- 为什么我可以使用前两个成功显示资源字符串,但Model.menuText为 null 并且无法显示任何内容?@Html.XXX和@Model中的模型有什么不同?