我正在尝试使用模型 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/

10-11 16:41