2010-11-29 77 views
3

什么是最好的做法 - 只使用不带任何参数的强类型的意见,通过ViewData字典传递,或它在使用这样的事情在一个视图中的不坏主意:ASP.NET MVC强类型的意见或不?

<%: (string)ViewData["helloMessage"]%> 

感谢。

回答

6

您应该更喜欢强类型视图。在某些情况下,你只需要一个字符串,就像你的例子中那样,它不属于模型,那么使用它就可以了。另一种方法是将这个变量封装到一个类中,并将该类传递给视图。结果将是一个强类型的视图:-)

我个人不喜欢神奇的字符串。

+1

如果您只是将一个字符串传递给视图,则不需要为该字符串创建一个特殊的类。相反,将字符串类本身作为模型传递:`string a =“”; return View(a);`另外,如果它是一个字符串,则必须执行`返回View((object)a);`以便该字符串不会被View名称混淆 - 但是,您可以保留指向一个字符串模型的视图。 – 2010-11-29 18:45:19

+0

好点Maxim ;-) – Mariusz 2010-11-29 19:06:27

1

使用“魔术字符串”没有任何问题
但是,他们受制于打字错误。

在MVC 3中,在控制器中有一个动态对象ViewModel,它对应于视图中的View对象。
因此,您可以在控制器中指定ViewModel.MyData="something";并在您的视图中将其用作@View.MyData
这是一种更好的方法。

只有强类型视图才有益于编译时检查。
这取决于你自己决定。
我个人使用动态对象。