Помощники HTML больше не могут выводить аргументы типа - PullRequest
9 голосов
/ 22 марта 2011

Полный текст ошибки:

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, но страницы работают нормально.

Html-помощники, которые не являются помощниками "For", работают нормально, только те, которые содержат эти выражения.

Неправильная разметка(1 пример из 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 ]

4 голосов
/ 22 марта 2011

Звучит глупо, я знаю, но вы пытались закрыть и снова открыть VS?

2 голосов
/ 10 марта 2014

Когда я столкнулся с этой проблемой ранее, это было после того, как мы обновили версии MVC, и ссылки на web.config не были должным образом обновлены.Это означало, что представления полагались на ссылки на более старые версии методов расширения HTML.

Посмотрите ваши ссылки и убедитесь, что версия верна.

0 голосов
/ 22 марта 2011

Метод Html.DisplayFor найдет подходящий шаблон отображения для указанного типа. Исключение кажется немного странным, но оно может указывать на то, что шаблон отображения для типа строки не зарегистрирован.

Возможно, вы захотите попробовать Html.LabelFor для тестирования. У вас есть специальный шаблон для отображения строк?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...