実際のメールアドレスではなく、人の名前で表示するmailtoリンクを取得しようとしています。
私のdetails.cshtml
ファイルには、サプライヤーに強くタイプされたページがあります
@model TheWorkshop.Web.Models.Supplier
しかし、私は使用できますが
@Html.DisplayFor(model => model.Email)
たとえば、mailto と同じテキスト値を持つ mailto リンクを表示するには
< a href="mailto: me@blah.com">me@blah.com</a>
私が欲しいのは、代わりに人の名前を表示することです。そこで、いろいろ探した結果、ヘルパー メソッドを作成してみることにしました。
public static MvcHtmlString PrettyEmailAddress(this HtmlHelper htmlHelper,
string email, string name)
{
var mailToLink = new TagBuilder("a");
mailToLink.Attributes.Add("mailto", email);
mailToLink.SetInnerText(name);
return MvcHtmlString.Create(mailToLink.ToString());
}
しかし、問題は、次のようにバインディングで呼び出そうとしたときです。
@Html.PrettyEmailAddress(@model.Email, @model.Name))
コンパイルエラーが発生します
CS0103: 名前 'モデル' は現在のコンテキストに存在しません
and '@model.Name` の代わりに文字列を渡す@model.Email
と、ヘルパーは正常に動作しますが、変数をヘルパーに渡すにはどうすればよいですか?