我在一个asp.net MVC 2项目,并具有从System.Web.Mvc.ViewPage <动态>继承的视图。我想这样做如下:是否可以匿名或动态视图模型传递给视图,后在ASP.net MVC 2?
public ActionResult Index()
{
dynamic model = new {Value1= string.Empty, Value2= string.Empty};
return View(model);
}
[HttpPost]
public ActionResult Index(dynamic model)
{
var value1 = model.Value1;
var value2 = model.Value2;
// do something here.
}
对于我的看法,我现在有以下:
<% using(Html.BeginForm("Index", "Test"))
{
%>
<div>
<label for="Value1">Value1:</label>
<%=Html.TextBox("Value1", Model.Value1 as string) %>
</div>
<div>
<label for="Value2">Value2:</label>
<%=Html.Password("Value2", Model.Value2 as string) %>
</div>
<div>
<input type="submit" value="Submit" />
</div>
<% } %>
上面的代码产生的“错误‘对象不包含的定义’ Value1'“并突出显示Value1的Html.TextBox行。
我试图写我自己的html表单和输入标记(确保包括名称和id属性)并将值设置为Model.Value1和Model.Value2。这用于渲染页面(和测试值);然而,在提交时,我得到了和以前一样的错误。
是否可以使用匿名和/或动态类型我在ASP.Net MVC2的ViewModels还是我被迫写一吨的DTO的,我很希望避免的。
由于自动验证,使用应用程序/视图/数据模型实体类仍然更好。无论如何,匿名课程并不会带来这种乐趣。 – 2011-02-11 15:36:19
我同意罗伯特,刚才的一切我已经听到和读到关于ASP.NET MVC建议强类型的意见(包括东西我周二的MVC的conf期间听到)。 – Mayo 2011-02-11 15:40:17