Чтобы добавить объект в качестве параметра, вам нужно передать объект.
Этот объект может быть создан в контроллере и передан как часть ViewModel, например:
@model MyApp.MyViewModel
где MyViewModel выглядит примерно так:
public class MyViewModel
{
public PageHeaderViewComponentOptions PhvcOptions { get; set; }
}
Где вы передаете объект следующим образом:
<vc:page-header phvc="PhvcOptions"></vc:page-header>
внутри блока кода бритвы:
@{
var PhvcOptions = new PageHeaderViewComponentOptions
{
pageTitle2 = "Test Title";
};
}
Где вы передаете объект, как это:
<vc:page-header phvc="@PhvcOptions"></vc:page-header>
или даже встроенный, который выглядит примерно так:
<vc:page-header phvc="@(new PageHeaderViewComponentOptions { pageTitle2 = "Test Title" })"></vc:page-header>
Хотя это противоречит цели и вместо него следует использовать строковый ввод:
<vc:page-header pageTitle2="Test Title"></vc:page-header>
Преимущество объекта в том, что он может быть нулевым, а поля объекта могут быть опущены. Там, где строковые параметры должны присутствовать в теге, даже если они пустые.
Вставка объектов является ИМО, также полезна, когда вы можете использовать часть модели представления в качестве параметра, как показано выше, или когда модель представления реализует различные интерфейсыи может быть передан в качестве самого параметра:
<vc:page-header phvc="Model"></vc:page-header>
, где MyViewModel имеет вид:
public class MyViewModel : IPageHeaderViewComponentOptions
{
public string pageTitle2 { get; set; }
}
И
public interface IPageHeaderViewComponentOptions
{
string pageTitle2;
}
Я не тестировал коди там могут быть опечатки. Особенно с @. Но вы получите идею. Любой подход должен работать.