Вместо:
public ActionResult Index()
{
ViewData["foo"] = _repository.GetFoos().ToList();
ViewData["bar"] = new string[] { "blah" };
ViewData["baz"] = "";
return View();
}
и затем:
public ActionResult Index(string baz)
{
// Do stuff...
ViewData["foo"] = _repository.GetFoos().ToList();
ViewData["bar"] = new string[] { "blah" };
ViewData["baz"] = baz;
return View();
}
Я думал о том, как уменьшить количество опечаток, сделав ViewData немного более структурированным, без необходимости добавлять (еще) другой класс ViewModel. Я придумал следующее:
public ActionResult Index()
{
var foo = _repository.GetFoos().ToList();
var bar = new string[] { "blah" };
var baz = null;
ViewData = new ViewDataDictionary {
{"foo", foo},
{"bar", bar},
{"baz", baz }
};
return View();
}
public ActionResult Index(string baz)
{
var foo = _repository.GetFoos().ToList();
var bar = new string[] { "blah" };
var baz = null;
// Do Stuff...
ViewData = new ViewDataDictionary {
{"foo", foo},
{"bar", bar},
{"baz", baz}
};
return View();
}
Это плохая идея переписать ViewData таким образом? Я уверен, что это не вызовет проблем с RenderPartials, но я больше не смогу вызывать RenderAction в представлении?