Joh*_*ell 5 c# razor viewbag asp.net-mvc-3
如果我正在使用包含强类型对象的ViewBag,MVC Razor是否有任何方法可以定义(或转换)以使其中的所有元素都出现在IntelliSense中?
比如说我有
ViewBag.Movies.Name
ViewBag.Movies.Length
Run Code Online (Sandbox Code Playgroud)
我知道电影是对象类型电影,其成员名称和长度
class Movie {
public string Name {get; set;}
public string Length {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
我可以以某种方式投射这个,就像我为模型做的那样
@model Transactions.UserTransactionDetails
Run Code Online (Sandbox Code Playgroud)
电影的成员可以在Razor中使用吗?
Ter*_*rry 17
您可以将其存储在变量中.
var movie = (Movie)ViewBag.Movie;
Run Code Online (Sandbox Code Playgroud)
然后键入@movie.将产生智能感知Name,Length.
Sta*_*anK 11
使用ViewModel,其中包含您查看所需的所有不同对象的属性
例如
public class MovieTransactionViewModel
{
public List<Transaction> Transactions { get; set; }
public List<Movie> Movies { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后,让你的视图使用它作为它的模型,你将在你的视图中获得intellisense.
这样您就不会更改模型,因此EntityFramework不会受到影响.
| 归档时间: |
|
| 查看次数: |
14487 次 |
| 最近记录: |