[C#/ASP.NET MVC/.NETCORE] TagHelper 클래스 : 메일 주소 링크를 생성하는 사용자 정의 태그 헬퍼 만들기
C#/ASP.NET MVC 2020. 10. 7. 20:04728x90
반응형
728x170
▶ TagHelpers/MailAddressLinkTagHelper.cs
using Microsoft.AspNetCore.Razor.TagHelpers;
using System.Threading.Tasks;
namespace TestProject.TagHelpers
{
/// <summary>
/// 메일 주소 링크 태그 헬퍼
/// </summary>
[HtmlTargetElement("el")]
public class MailAddressLinkTagHelper : TagHelper
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Field
////////////////////////////////////////////////////////////////////////////////////////// Private
#region Field
/// <summary>
/// 메일 서버
/// </summary>
private const string MAIL_SERVER = "daum.com";
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 비동기 처리하기 - ProcessAsync(context, output)
/// <summary>
/// 비동기 처리하기
/// </summary>
/// <param name="context">컨텍스트</param>
/// <param name="output">출력</param>
/// <returns>태스크</returns>
public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
{
output.TagName = "a";
string sourceContent = (await output. GetChildContentAsync()).GetContent();
string targetContent = $"{sourceContent}@{MAIL_SERVER}";
output.Attributes.Add("href", $"mailto:{targetContent}");
output.Content.SetContent(targetContent);
}
#endregion
}
}
728x90
▶ Views/Test/Index.cshtml
@addTagHelper *, TestProject
@{ Layout = null; }
<p>TagHelper 클래스 : 메일 주소 링크를 생성하는 사용자 정의 태그 헬퍼 만들기</p>
<hr />
<el>charles</el>
<el>peter</el>
728x90
반응형
그리드형(광고전용)
댓글을 달아 주세요