在视图MVC中格式化相当多的属性

时间:2015-02-02 12:15:02

标签: c# asp.net-mvc razor

我有一个Razor View,数据通过ViewBag传入(我不能使用ViewModel)。传递了大约50个不同的属性,每个属性都需要自己的条件预格式化(比其他属性更多。)

在显示这些值之前,我无法确定格式化这些值的位置。如果直接在视图中进行格式化,那么会有很多的if-else语句堵塞视图,在我看来,这有点凌乱。我现在这样做的方法是传入预先格式化的(在控制器中完成)自定义属性对象的列表,视图使用@Helper方法迭代。

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

为了完整性和声誉,我在下面添加了我的解决方案。

模型

public class MyModel
{
    public string MyProperty
    {
        set;
        get
        {
            return String.Format(...);
        }
    }
}

控制器

public class MyController
{
    public ActionResult MyAction()
    {
        var myModel = new MyModel();
        // Set properties
        ViewBag.ActualViewModel = myModel
        return View()
    }
}

查看

@{
    var actualModel = ViewBag.ActualModel as MyModel;
}