我有一个Razor View,数据通过ViewBag传入(我不能使用ViewModel)。传递了大约50个不同的属性,每个属性都需要自己的条件预格式化(比其他属性更多。)
在显示这些值之前,我无法确定格式化这些值的位置。如果直接在视图中进行格式化,那么会有很多的if-else语句堵塞视图,在我看来,这有点凌乱。我现在这样做的方法是传入预先格式化的(在控制器中完成)自定义属性对象的列表,视图使用@Helper方法迭代。
有更好的方法吗?
答案 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;
}