如何在行项目之间添加空间

时间:2019-08-14 12:34:28

标签: c# asp.net-mvc razor

我正在尝试使用@Html.DisplayFor在Elements之间放置一个空格。我知道DisplayFor是一个“绑定”属性,但是在这种情况下,我无法修改。

@foreach (var item in Model)
{
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Id)
        </td>
        <td>
            @{
                foreach (var t in item.ProcessDataDefinitions)
                {                      
                    @Html.DisplayFor(model => t.Name )
                    @Html.Label(" : ")
                    foreach (var gg in t.Values)
                    {                          
                        @Html.DisplayFor(model => gg.Value)
                    }                       
                }
            }
        </td>
        <td>
            @Html.ActionLink("Ir", "../Process/Show", new { id = item.Id }) |
            @Html.ActionLink("Andamento", "../Process/ViewTracker", new { id = item.Id })
        </td>


    </tr>
}

因此,在第二个foreach中,我想在属性NameValue之间创建一个小空间,我尝试使用@Html.Label(" : "):出现,但没有给一些空间。

3 个答案:

答案 0 :(得分:2)

为此,您可以使用<text>元素:

@Html.DisplayFor(model => t.Name )<text>" : "</text>

我认为您也可以使用@:作为另一种选择。您可以在此处获取更多信息:Razor’s @: and <text> syntax

答案 1 :(得分:2)

如果您希望在元素之间留一个空隙,那么应该使用CSS,例如:

<div class="model-name">
    @Html.DisplayFor(model => t.Name )
</div>

foreach (var gg in t.Values)
{     
    <div class="model-value">                     
        @Html.DisplayFor(model => gg.Value)
    </div>
}  

您的CSS可能是这样的:

.model-name { 
    display: inline-block;
    margin-right: 10px;
}

.model-value { 
    display: inline-block;
}

这是一个可以演示我的观点的可运行演示(带有彩色边框以强调位置):

.model-name { 
    border: 1px solid red;
    display: inline-block;
    margin-right: 10px;
}

.model-value { 
    border: 1px solid blue;
    display: inline-block;
}
<div class="model-name">
        ModelName
</div>

<div class="model-value">                     
    Model Value 1
</div>
<div class="model-value">                     
    Model Value 2
</div>
<div class="model-value">                     
    Model Value 3
</div>

答案 2 :(得分:1)

它甚至可以更简单,您不需要任何额外的标签(多余的标签会使您的页面更重):

@Html.DisplayFor(model => t.Name) :

您也可以像这样使用&nbsp;

 @Html.DisplayFor(model => t.Name)&nbsp;: