Как перейти в HTML к Razor Partial View? - PullRequest
4 голосов
/ 21 июня 2019

Я хочу передать HTML в мое частичное представление, например, так:

@Html.Partial("_MyForm", "<button id='foo'>Process Data</button>")

В настоящее время это работает, но передача строк не является элегантной.Ранее IHTMLString позволял вам делать это вместо этого (см. ссылка ):

public class HTMLViewModel
{
    public Func<object, IHtmlString> Content { get; set; }
}

@Html.Partial("_MyForm", new HTMLViewModel()
{
    Content =  
    @<button>
       <h1>Hello World</h1>
    </button>
})

IHTMLString больше не существует в .NET Core, может ли подход все еще быть реплицирован с какой-либо другой функцией?

1 Ответ

2 голосов
/ 21 июня 2019

Вы можете использовать IHtmlContent для поддержания вашего текущего подхода:

public Func<object, IHtmlContent> Content { get; set; }

А потом в частичном:

@model HTMLViewModel
@Model.Content(null)

В зависимости от того, какую версию .NET Core вы используете, вы также можете воспользоваться некоторыми изменениями разметки встроенных функций, которые обсуждались здесь: https://github.com/aspnet/AspNetCore-Tooling/pull/334

...