有什么方法可以基于字符串创建和使用 ViewBag 的动态属性?
就像是
ViewBag.CreateProperty("MyProperty");
ViewBag.Property("MyProperty") = "Myvalue";
谢谢
有什么方法可以基于字符串创建和使用 ViewBag 的动态属性?
就像是
ViewBag.CreateProperty("MyProperty");
ViewBag.Property("MyProperty") = "Myvalue";
谢谢
我刚刚发现 ViewData 可以用来为 ViewBag 创建这样的属性
所以要创建属性 CityErrorMessage 我必须使用
ViewData.Add("CityErrorMessage", MyErrorMessage)
然后在视图中我可以使用
@ViewBag.CityErrorMessage
编辑:
我动态创建了 ViewBag 的属性,因为我在列表中收到了带有验证错误的字段名称
所以代码实际上是
foreach (ValidationError err in ValidationErrors)
{
ViewData.Add(
string.format("{0}ErrorMsg", err.PropertyName),
err.ValidationErrorMessage);
}
更新:我姗姗来迟地意识到这段代码来自一个 Nancy 项目,而 Nancy 实现了它自己的 ViewBag,所以这段代码不适用于 .Net MVC3 并且不回答这个问题。然而,有人可能会争辩说,这个问题可以通过切换到南希来解决。
我发现 ViewBag 有一个Add
方法,所以你可以这样做:
foreach(var row in model)
{
ViewBag.Add(row.resourceName, row.content);
}