ASP.NET MVC 视图无法看到匿名对象 viewModel 的成员
ASP.NET MVC View can't see member of an anonymous object viewModel
我正在尝试创建一个匿名对象视图模型,其中一个成员来自 Models 文件夹,另一个来自我自己的自定义 classes 文件夹:
var viewModel = new {
test1 = new Models.Test1(),
test2 = new Classes.Test2()
};
return View(viewModel);
在视图中,@Model
,如果您 pause/breakpoint,并使用 Visual Studio 调试器检查它,包含:
型号[按回车键]:
{ Test1 = {MVC_Test1.Models.Test1}, Test2 = {MVC_Test1.Classes.Test2} }
Test1: {MVC_Test1.Models.Test1}
Test2: {MVC_Test1.Classes.Test2}
但是,如果您尝试以下操作:
Model.Test1 [按回车键]
'Model.Test1' threw an exception of type 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException'
Message: "'object' does not contain a definition for 'Test1'"
怎么了?有没有办法引用以这种方式动态创建的视图模型?或者我必须显式创建一个 class 将 Models.Test1()
和 Classes.Test2()
实例化为一个 class,并使用它代替匿名对象吗?
视图的匿名模型没有任何意义,因为您必须创建匿名输入控件,所以创建一个真正的类型化视图模型
public class ViewModel
{
public Test1 Test1 {get; set;}
public Test2 Test2 {get; set;}
};
model = new ViewModel {
test1 = new Models.Test1(),
test2 = new Classes.Test2()
};
return View(model);
````
我正在尝试创建一个匿名对象视图模型,其中一个成员来自 Models 文件夹,另一个来自我自己的自定义 classes 文件夹:
var viewModel = new {
test1 = new Models.Test1(),
test2 = new Classes.Test2()
};
return View(viewModel);
在视图中,@Model
,如果您 pause/breakpoint,并使用 Visual Studio 调试器检查它,包含:
型号[按回车键]:
{ Test1 = {MVC_Test1.Models.Test1}, Test2 = {MVC_Test1.Classes.Test2} }
Test1: {MVC_Test1.Models.Test1}
Test2: {MVC_Test1.Classes.Test2}
但是,如果您尝试以下操作:
Model.Test1 [按回车键]
'Model.Test1' threw an exception of type 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException'
Message: "'object' does not contain a definition for 'Test1'"
怎么了?有没有办法引用以这种方式动态创建的视图模型?或者我必须显式创建一个 class 将 Models.Test1()
和 Classes.Test2()
实例化为一个 class,并使用它代替匿名对象吗?
视图的匿名模型没有任何意义,因为您必须创建匿名输入控件,所以创建一个真正的类型化视图模型
public class ViewModel
{
public Test1 Test1 {get; set;}
public Test2 Test2 {get; set;}
};
model = new ViewModel {
test1 = new Models.Test1(),
test2 = new Classes.Test2()
};
return View(model);
````