如果条件-更好的解决方案?

时间:2019-07-25 16:32:42

标签: c# asp.net asp.net-mvc

我想知道是否有一种更好的方法来编写此解决方案,而不是在部分视图中编写if else语句,该语句根据从先前视图继承的ViewBag值显示不同的内容。

视图-声明了ReportIdentity视图包。

@model xxx.Areas.CustomReports.Models.YearlyBusinessSummaryViewModel
@{
var reportUrl = Url.Action("GenerateReportFromCache", 
"YearlyBusinessSummary", new { area = "CustomReports" });
ViewBag.ReportIdentity = "YBS";
}

部分视图-包含我要替换的if else语句。

if (ViewBag.ReportIdentity == "YBS";)
{
<div>
Tag 1</div>} 
else if (ViewBag.ReportIdentity == "CGA")
{
<div>
 Tag 2
</div>
}else if (ViewBag.ReportIdentity == "YTD")
{
<div>
Tag3
</div>

没有错误

2 个答案:

答案 0 :(得分:0)

您可以使用Switch / Case:

switch(ViewBag.ReportIdentity)
{
    case 'option 1':
                  //do something
                  break;
    case 'option 2':
                  //do something
                  break;
    case 'option 3':
                  //do something
                  break;
}default:
        //Last option, if does not enter on case

答案 1 :(得分:0)

提供局部视图模型,而不是使用ViewBag,然后您可以根据提供模型的方式来更改行为。

@model xxx.ReportIdentityModel

<div>
   Model.DisplayName
</div>
public class xxx.YBSReport : ReportIdentityModel
{
   public DisplayName { get { return "Tag 1"; } }
}