文字列に基づいて 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);
}