2012-03-01 114 views
6

我試圖利用擴展HTML輔助DisplayFor在這樣的觀點:MVC視圖:類型參數的HTML幫助DisplayFor不能從使用推斷

<%@ 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" /> 
<% } %> 

具有以下視圖模型

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; 
     } 
    } 
} 

它給我這個錯誤

類型參數的方法 「System.Web.Mvc.Html.Displ ayExtensions.DisplayFor(System.Web.Mvc.HtmlHelper,System.Linq.Expressions.Expression>)' 不能從使用情況推斷。嘗試明確指定類型參數

我無法弄清楚什麼是錯的。請注意,我可以以強類型的方式訪問模型,並在視圖中彈出IntelliSense。但是,當我輸入lambda表達式時,智能感知不會彈出。

+0

最近,我盤算了一下意見就建立和罰款按照假定的方式工作,唯一的問題是設置視圖時沒有IntelliSense彈出窗口和令人討厭的紅線/錯誤。 – Brouwer 2012-03-13 09:46:50

回答

4

我現在的工作,問題是,仍然.NET v3.5版本,而不是4.0版編譯了該項目,請參閱:

https://stackoverflow.com/a/7142200/1232507

+0

我也面臨同樣的問題。你能否以外行人的方式指導我如何解決這個問題。讓步驟明智。我真的很感激。 – Unbreakable 2017-03-31 01:06:48

相關問題