我在一個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