Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 模板化Razor委托-更简单的HTML块_C#_Templates_Razor - Fatal编程技术网

C# 模板化Razor委托-更简单的HTML块

C# 模板化Razor委托-更简单的HTML块,c#,templates,razor,C#,Templates,Razor,我正在使用Razor进行一些模板生成工作,我希望完成以下语法: <div> @(Html.Use<LinkItem>("Story1", { <span>Something cool</span> <a href="@(item.Href)">@(item.Text)</a> })) </di

我正在使用Razor进行一些模板生成工作,我希望完成以下语法:

        <div>
        @(Html.Use<LinkItem>("Story1",
        {
            <span>Something cool</span>
            <a href="@(item.Href)">@(item.Text)</a>
        }))
        </div>

@(Html.Use(“故事1”,
{
酷的东西
}))
或者,甚至更好

        <div>
        @(Html.Use<LinkItem>("Story1",
           <span>Something cool</span>
           <a href="@(item.Href)">@(item.Text)</a>
        ))
        </div>

@(Html.Use(“故事1”,
酷的东西
))
使用模板剃须刀代理,我得到了以下结果:

        <div>
        @(Html.Use<LinkItem>("Story1",
           @<span>Something cool</span>
           @<a href="@item.Href">
                @item.Text
            </a>
        ))
        </div>

@(Html.Use(“故事1”,
@酷的东西
@
))
问题是,我不想在块中的每个标记之前都添加@,而且
标记看起来也太好了


有可能实现我所追求的目标吗?或者可能还有其他方法?

您可以通过
节点获得最接近的结果:

@(Html.Use<LinkItem>("Story1", @<text>
    <span>Something cool</span>
    <a href="@(item.Href)">@(item.Text)</a>    
</text>))
然后我定义了相应的显示模板,它会自动为集合的每个元素呈现(
~/Views/Shared/DisplayTemplates/SomeItem.cshtml

@model SomeItem
酷的东西

我认为是这样-我采用了这种方法。谢谢
@Html.DisplayFor(x => x.SomeCollectionProperty)
@model SomeItem
<span>Something cool</span>
<a href="@(Model.Href)">@Model.Text</a>