Visual Studio 2015でタグヘルパーのASP.Netコアプロジェクトが動作しません。プロジェクトにコンパイルエラーはありません。プロジェクトを実行すると、タグヘルパーはレンダリングされません。私はTagヘルパーの "Process"メソッドにブレークポイントを入れましたが、そこには来ていません。それを動作させる方法を教えてください。Asp.Netコア1.0(Visual Studio 2015)のタグヘルパーのヘルプが必要
1. "Microsoft.AspNet.Mvc.TagHelpers": "project.json"ファイルの "dependencies"セクションの "6.0.0-rc1-final"が含まれています。
2.Added @ addTagHelper *、_ViewImports.cshtmlファイルのMicrosoft.AspNetCore.Mvc.TagHelpers。
Index.cshtml のコードの下に3.Added
<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());
}
}
}
}
ありがとう、私はエラーが発生しています - TagHelperアセンブリ 'MVC_TagHelper'を解決できません。エラー:ファイルまたはアセンブリ 'MVC_TagHelper'またはその依存関係の1つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。プロジェクト名とデフォルト名前空間は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