Levelnisのブログからメッセージクラスを実装しようとすると、コンパイルエラーが発生します。asp.net MVC6タグビルダークラスを実装し、 ".ToString"でエラーを取得します。
問題のクラスがある: - 私は2つのエラーを取得しています
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.AspNet.Mvc.Rendering;
namespace Notifier.Helpers.MessageNotifier
{
public class Message
{
public MessageSeverity Severity { get; set; }
public string Text { get; set; }
public string Generate()
{
var isDismissable = Severity != MessageSeverity.Danger;
if (Severity == MessageSeverity.None) Severity = MessageSeverity.Info;
var sb = new StringBuilder();
var divTag = new TagBuilder("div");
divTag.AddCssClass("alert fade in");
divTag.AddCssClass("alert-" + Severity.ToString().ToLower());
var spanTag = new TagBuilder("span");
spanTag.MergeAttribute("id", "MessageContent");
if (isDismissable)
{
divTag.AddCssClass("alert-dismissable");
}
sb.Append(divTag.ToString(TagRenderMode.StartTag));
if (isDismissable)
{
var buttonTag = new TagBuilder("button");
buttonTag.MergeAttribute("class", "close");
buttonTag.MergeAttribute("data-dismiss", "alert");
buttonTag.MergeAttribute("aria-hidden", "true");
buttonTag.InnerHtml = "×";
sb.Append(buttonTag.ToString(TagRenderMode.Normal));
}
sb.Append(spanTag.ToString(TagRenderMode.StartTag));
sb.Append(Text);
sb.Append(spanTag.ToString(TagRenderMode.EndTag));
sb.Append(divTag.ToString(TagRenderMode.EndTag));
return sb.ToString();
}
}
}
最初はライン上に ".ToStringを" に関する:
sb.Append(divTag.ToString(TagRenderMode.StartTag));
、それは言う:
No overload for method 'ToString' takes 1 arguments
2番目のエラーは、行に関連しています。
buttonTag.InnerHtml = "×";
、それは言う:
Property or indexer 'TagBuilder.InnerHtml' cannot be assigned to -- it is read only
私はドキュメントや他の記事を見て持っていたが、これまでのところ、私は私が正しくコンパイルするために、これを修正することができます何かを発見していない...
これらのメソッドはAsp.net-coreで実装されていますか?もしそうでなければ、誰かがこれらの行を行う別の方法を提案できますか?
[this](http://www.mikesdotnetting.com/article/274/introducing-taghelpers-in-asp-net-mvc-6)チュートリアルを参考にしてください。 tagbuilderの代わりにtaghelperを使用します。私はそれがよりクリーンでより理解しやすいコード&htmlで解決すると思います –
ありがとうTom。私はステップバックし、Tempdataメッセージを作成する私のアプローチを変更することを決めた - 私の答えを参照してください.. – si2030