3

你好,我想有一个简单的问题,

我有一个类似的cshtml:

<div id="box">
    @if (model.View == "item1")
    {
        <div id="item1">
            ...
        </div>
    }
    else
    {
        <div id="item2">
            ...
        </div>
    }   
    <div id="itemDescription">
        ...
    </div>
</div>

我通过模型传递参数以根据参数显示一些内容,因为在两种情况下文档的其余部分都是相同的。

还有另一种更好的方法来实现这一目标吗?

谢谢!

4

2 回答 2

4

如果这两个中没有太多内容,那么您div方法很好。否则,创建两个局部视图以帮助保持整洁:

@if (model.View == "item1")
{
    @Html.RenderPartial("Item1");
}
else
{
   @Html.RenderPartial("Item2");
} 
于 2013-04-30T12:07:37.823 回答
3

并不真地; 这是一种非常好的做事方式。如果 div id 始终与 的值匹配model.View,则可以将其缩短为:

<div id="box">
    <div id="@(model.View)">
        ...
    </div>  
    <div id="itemDescription">
        ...
    </div>
</div>

否则,您的方法很好。根据 von v 的评论,如果包含的标记冗长(或者您需要在多个地方重复逻辑),您可能希望查看部分视图:

http://www.asp.net/mvc/videos/mvc-2/how-do-i/how-do-i-work-with-data-in-aspnet-mvc-partial-views

于 2013-04-30T12:05:56.900 回答