Hoi*_*sel 6 razor asp.net-mvc-3
有没有比下面有条件地(使用剃刀)显示/隐藏元素的更聪明的方法?视图非常大,我担心维护:
@if(@Model.Atendimento.PrazosEEntregas.Visivel)
{
<div>
<h4>Prazos e entrega do serviço</h4>
@if (!string.IsNullOrWhiteSpace(@Model.Atendimento.PrazosEEntregas.PrazoFinalizacaoServico))
{
<p>@Model.Atendimento.PrazosEEntregas.PrazoFinalizacaoServico</p>
}
@if (!string.IsNullOrWhiteSpace(@Model.Atendimento.PrazosEEntregas.PrazoRetiradaDocumento))
{
<p><strong>Prazo de retirar o documento:</strong> @Model.Atendimento.PrazosEEntregas.PrazoRetiradaDocumento</p>
}
@if (!string.IsNullOrWhiteSpace(@Model.Atendimento.PrazosEEntregas.OndeRetirarServico))
{
<p><strong>Onde retirar/receber:</strong> @Model.Atendimento.PrazosEEntregas.OndeRetirarServico</p>
}
@if (!string.IsNullOrWhiteSpace(@Model.Atendimento.PrazosEEntregas.ObservacaoPrazoRetirada))
{
<p><strong>Observação:</strong> @Model.Atendimento.PrazosEEntregas.ObservacaoPrazoRetirada</p>
}
</div>
}
Run Code Online (Sandbox Code Playgroud)
谢谢,Hoisel
您可以编写一个有条件地输出内容的自定义帮助程序:
public static class HtmlExtensions
{
public static IHtmlString FormatValue(
this HtmlHelper htmlHelper,
string value,
string label
)
{
if (string.IsNullOrWhiteSpace(value))
{
return MvcHtmlString.Empty;
}
var result = string.Format(
"<p><strong>{0}</strong> {1}</p>",
htmlHelper.Encode(label),
htmlHelper.Encode(value)
);
return new HtmlString(value);
}
}
Run Code Online (Sandbox Code Playgroud)
然后:
@Html.FormatValue(
Model.Atendimento.PrazosEEntregas.ObservacaoPrazoRetirada,
"Observação:"
)
Run Code Online (Sandbox Code Playgroud)
另一种可能性是使用显示模板:
@Html.DisplayFor(x => x.Atendimento.PrazosEEntregas.ObservacaoPrazoRetirada)
Run Code Online (Sandbox Code Playgroud)
然后,您可以为字符串类型(或自定义类型)定义显示模板:
@model string
@if (!string.IsNullOrWhiteSpace(Model))
{
<p>
<strong>@ViewData.ModelMetadata.DisplayName</strong>
@ViewData.TemplateInfo.FormattedModelValue
</p>
}
Run Code Online (Sandbox Code Playgroud)
在您的视图模型上:
[DisplayName("Observação:")]
[UIHint("MyTemplate")]
public string ObservacaoPrazoRetirada { get; set; }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8605 次 |
| 最近记录: |