我正在尝试使用模型 ListModel 作为通用列表模型。我想进入页面
@Html.DisplayForModel()
但是 MVC 没有正确找到模板文件“ListModel.cshtml”。对于通用模型,它必须以不同的方式工作。我应该为模板文件命名什么才能正确定位它?
public class ListModel<T>
{
public IEnumerable<T> Models { get; set; }
public string NextPage { get; set; }
}
我希望它寻找
Shared/DisplayTemplates/ListModel.ascx
但它没有。有人知道吗?编辑:
我确实通过简单地删除通用参数来解决这个问题。我确实想知道您是否仍然可以拥有通用文件名。
public class ListModel
{
public IEnumerable Models {get;set;}
public string NextPage {get;set;}
}
最佳答案
作为一种解决方法,您能否使用 ListModel<T>
属性装饰 UIHint
类以强制它使用您想要的模板?
例如,
[UIHint("ListModel")]
public class ListModel<T>
{
...
关于c# - 通用类型的 ASP.NET MVC 显示模板,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4531928/