Html助手不再能够推断出类型参数

时间:2011-03-21 21:27:36

标签: .net asp.net-mvc model-view-controller asp.net-mvc-2

完整错误文字:

The type arguments for method 'System.Web.Mvc.Html.DisplayExtensions.DisplayFor<TModel,TValue>(System.Web.Mvc.HtmlHelper<TModel>, System.Linq.Expressions.Expression<System.Func<TModel,TValue>>)' cannot be inferred from the usage. Try specifying the type arguments explicitly.

它刚刚开始发生,但我不相信我做了任何会影响此功能的更改。它会抛出VS intellisense错误,但页面功能正常。

不是“For”帮助程序的Html帮助程序工作得很好,它只包含这些表达式。

违规标记(100个例子):

 <%: Html.DisplayFor(model => model.PortfolioName) %>    

页面指令:

<%@ Page Language="C#" Inherits="ViewPage<My.Namespace.PortfolioViewModel>" %>

查看型号:

namespace My.Namespace
{
    public class PortfolioViewModel
    {
        [Required(ErrorMessage = " ")]
        [DataType(DataType.Text)]
        [DisplayName("Portfolio Name:* ")]
        public string PortfolioName { get; set; }
     }
}

3 个答案:

答案 0 :(得分:4)

这听起来很愚蠢,我知道,但是你试过关闭并重新开启VS吗?

答案 1 :(得分:2)

当我之前遇到此问题时,我们升级了MVC版本并且web.config引用未正确更新。这意味着视图依赖于对旧版HTML扩展方法的引用。

查看您的参考资料并确保版本正确。

答案 2 :(得分:0)

Html.DisplayFor方法将为指定的类型找到合适的显示模板。异常似乎有点奇怪但它可能表明没有为字符串类型注册显示模板。

您可能需要尝试使用Html.LabelFor进行测试。你有一个特殊的字符串显示模板吗?