2016-06-29 9 views
0

私はViewComponentを持っているときにビューを返すことができます。AspCore ViewComponent with StreamResult

が、これは今、私はビューのマークアップが含まれている、指定された文字列でViewContentを作成したいと思い、この

public class ContactViewComponent : ViewComponent 
{ 
    public IViewComponentResult Invoke() 
    { 
     return View(); 
    } 
} 

ようなビューフォルダ内のファイルにバインドされています。

ビューコンポーネントでこれを行うための組み込み方法はありますか?

答えて

1

HtmlContentViewComponentResultHtmlContentを返すことは、このトリックを行う必要があります。

public class ContactViewComponent : ViewComponent 
{ 
    public IViewComponentResult Invoke() 
    { 
     var htmlString = new HtmlString("<b>Hello World!</b>"); 

     return new HtmlContentViewComponentResult(htmlString); 
    } 
} 

HtmlStringは、生の文字列をエスケープしないで返します。しかし、ここでレンダリングされるコンテンツに悪質なコードを挿入することを許可しないように注意してください!ソースへ

リンク:

https://github.com/aspnet/Mvc/blob/a78f77afde003c4a3fcf5dd7b6dc13dd9c85f825/src/Microsoft.AspNetCore.Mvc.ViewFeatures/ViewComponents/HtmlContentViewComponentResult.cs

https://github.com/aspnet/HtmlAbstractions/blob/dev/src/Microsoft.AspNetCore.Html.Abstractions/HtmlString.cs

関連する問題