您好我认为我有一个简单的问题,
我有一个类似的cshtml:
<div id="box">
@if (model.View == "item1")
{
<div id="item1">
...
</div>
}
else
{
<div id="item2">
...
</div>
}
<div id="itemDescription">
...
</div>
</div>
我通过模型传递参数以根据参数显示某些内容,因为在这两种情况下文档的其余部分都是相同的。
还有另一种更好的方法来实现这一目标吗?
谢谢!
答案 0 :(得分:4)
如果那两个div
中不多,那么你的方法很好。否则,创建两个部分视图以帮助保持整洁:
@if (model.View == "item1")
{
@Html.RenderPartial("Item1");
}
else
{
@Html.RenderPartial("Item2");
}
答案 1 :(得分: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