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());
}
}
}
}
謝謝,我收到錯誤 - 無法解析包含程序集「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
@ user1396423這是因爲您實現標記助手的程序集未被調用爲「MVC_TagHelper」。 (我這樣說是因爲我假設從'MVC_TagHelper.CustomTagHelper'派生的名稱)。將其更改爲正確的程序集名稱,它應該是它。 – Humberto
我試過先生,但仍然無法工作。我不明白什麼是錯的。 – user1396423