.Net Core RC1 を使用して MVC 6 用のタグ ヘルパーを作成しようとしています。いくつかの優れたソースを見つけましたが、非常に近いものはありませんでした。これは私が見つけた最も近いもので、既存のコードを作成するために必要だと思った要素を取りました:
これを開始するには、私のターゲット HTML です。
<span class="form-control">
Highly Disagree
<input type="radio" name="MakingSense" value=1 />
<input type="radio" name="MakingSense" value=2 />
<input type="radio" name="MakingSense" value=3 />
<input type="radio" name="MakingSense" value=4 />
<input type="radio" name="MakingSense" value=5 />
Highly Agree
</span>
現在、入力タグの1つを表示しようとしています。私がそれを理解できれば、ループを追加して他のものを取得します。ここに私のTagHelperがあります
[HtmlTargetElement("input", Attributes = LikertForAttributeName)]
public class LikertTagHelper : TagHelper
{
private const string LikertForAttributeName = "likert-for";
[HtmlAttributeName(LikertForAttributeName)]
public string ModelField { get; set; }
public override void Process(TagHelperContext context, TagHelperOutput output)
{
var content = new StringBuilder();
var input = new TagBuilder("input");
input.MergeAttribute("type", "radio");
input.MergeAttribute("name", ModelField);
input.MergeAttribute("value", "1");
content.AppendLine(input.ToString());
output.Content.SetContent(content.ToString());
output.PreContent.SetHtmlContent("<span class=\"form-control\"");
output.PostContent.SetHtmlContent("</span>");
}
}
これが私のかみそりのcshtmlです:
<input likert-for="CharacterUnderstanding" />
ただし、これはhtml出力としてのみ取得します。
<input />
そのため、タグを取得して処理していますが、期待どおりではありません。私が間違っていた場所で助けていただければ幸いです。