2017-03-16 150 views
0

我無法在Visual Studio 2015中使用標籤助手工作ASP.Net核心項目。項目中沒有編譯錯誤。當我運行該項目時,標籤幫助程序不會呈現。我在Tag助手的「Process」方法中放置了斷點,但它不會到達那裏。請讓我知道如何使它工作。在Asp.Net core 1.0中需要幫助標籤助手(Visual Studio 2015)

1.在「project.json」文件的「依賴項」部分包含「Microsoft.AspNet.Mvc.TagHelpers」:「6.0.0-rc1-final」。

2.在_ViewImports.cshtml文件中添加了@addTagHelper *,Microsoft.AspNetCore.Mvc.TagHelpers。

在Index.cshtml

<table generate-rows="@Model.Count()" source-model="@Model"></table> 

4.Tag助手代碼

using System.Collections; 
using System.Text; 
using System.Reflection; 
using Microsoft.AspNetCore.Razor.TagHelpers; 
using Microsoft.AspNetCore.Mvc.ViewFeatures; 

namespace MVC_TagHelper.CustomTagHelper 
{ 
    [HtmlTargetElement("table",Attributes ="generate-rows,source-model")] 
    public class TableTagHelper : TagHelper 
    { 
     [HtmlAttributeName("generate-rows")] 
     public int RepeatCount { get; set; } 
     [HtmlAttributeName("source-model")] 
     public ModelExpression DataModel { get; set; } 
     public override void Process(TagHelperContext context, TagHelperOutput output) 
     { 
      IEnumerable model = DataModel.Model as IEnumerable; 
      if (model == null) 
       return; 
      else 
      { 
       StringBuilder sb = new StringBuilder(); 
       foreach (var m in model) 
       { 
        PropertyInfo[] properties = m.GetType().GetProperties(); 
        string html = "<tr>"; 
        for (int i = 0; i < properties.Length; i++) 
        { 
         html += "<td>" + m.GetType().GetProperty(properties[i].Name).GetValue(m, null) + "</td>"; 
        } 
        html += "</tr>"; 
        sb.Append(html); 
       } 
       output.Content.SetHtmlContent(sb.ToString()); 
      } 
     } 
    } 
} 

回答

0

檢查_ViewImports.cshtml 3.Added下面的代碼。確保它包含對標籤幫助程序類名稱空間的引用:

@using MVC_TagHelper; 
@addTagHelper *, MVC_TagHelper 

我前段時間遇到了同樣的問題。

+0

謝謝,我收到錯誤 - 無法解析包含程序集「MVC_TagHelper」的TagHelper。錯誤:無法加載文件或程序集「MVC_TagHelper」或其某個依賴項。該系統找不到指定的文件。項目名稱和默認名稱空間是MVC_TagHelper。控制器名稱空間是MVC_TagHelper.Web。標籤助手名稱空間是MVC_TagHelper.CustomTagHelper,其類名是TableTagHelper。 _ViewImports.cshtml文件 - 使用MVC_TagHelper addTagHelper *,Microsoft.AspNetCore.Mvc.TagHelpers addTagHelper *,MVC_TagHelper – user1396423

+0

@ user1396423這是因爲您實現標記助手的程序集未被調用爲「MVC_TagHelper」。 (我這樣說是因爲我假設從'MVC_TagHelper.CustomTagHelper'派生的名稱)。將其更改爲正確的程序集名稱,它應該是它。 – Humberto

+0

我試過先生,但仍然無法工作。我不明白什麼是錯的。 – user1396423