model view controller - MVC View: escriba argumentos Html helper DisplayFor no se puede deducir del uso
model-view-controller c#-4.0 (1)
Estoy tratando de hacer uso de HTML Helper DisplayPor extendido en esta vista:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MvcCms.Web.ViewModels.SubscriptionsViewModel>" %>
<% using (Html.BeginForm("TrainingSubscription", "Account", FormMethod.Post))
{ %>
<%: Html.DisplayFor(m => m.Subscriptions) %>
<input type="submit" value="Save" />
<% } %>
con el siguiente ViewModel
namespace MvcCms.Web.ViewModels
{
public class SubscriptionsViewModel
{
public string TrainingId { get; set; }
public string Subject { get; set; }
public IEnumerable<SubscriptionViewModel> Subscriptions { get; set; }
public SubscriptionsViewModel(string TrainingId, string Subject, IEnumerable<SubscriptionViewModel> Subscriptions)
{
this.TrainingId = TrainingId;
this.Subject = Subject;
this.Subscriptions = Subscriptions;
}
}
public class SubscriptionViewModel
{
public string ContactId { get; set; }
public string FullName { get; set; }
public bool Subscribed { get; set; }
public SubscriptionViewModel(string ContactId, string FullName, bool Subscribed)
{
this.ContactId = ContactId;
this.FullName = FullName;
this.Subscribed = Subscribed;
}
}
}
Me está dando este error
Los argumentos de tipo para el método ''System.Web.Mvc.Html.DisplayExtensions.DisplayFor (System.Web.Mvc.HtmlHelper, System.Linq.Expressions.Expression>)'' no se pueden deducir del uso. Intente especificar los argumentos de tipo explícitamente
No puedo entender lo que está mal. Tenga en cuenta que puedo acceder al Modelo de manera fuertemente tipada con IntelliSense apareciendo en la vista. Sin embargo, IntelliSense no está apareciendo cuando estoy escribiendo la expresión lambda.
Lo conseguí trabajando ahora, el problema era que el proyecto aún compilado con .NET v3.5 en lugar de v4.0, mira:
https://.com/a/7142200/1232507