我有使用ASP.NET窗體的經驗,但是對於MVC是新手。ASP.NET MVC 3剃鬚刀 - 從自定義編輯器中獲取數據
如何在回發中從共享視圖獲取數據?
在ASP.NET表單我可以寫這樣的事:
ASP.NET窗體:
型號代碼:
public class MyModelItem
{
// Just TextBox is enough for editing this
public string SimpleProperty { get; set; }
// For this property separate NestedItemEditor.ascx is required
public MyModelNestedItem ComplexProperty { get; set; }
}
public class MyModelNestedItem
{
public string FirstProperty { get; set; }
public string SecondProperty { get; set; }
}
行爲:
用於編輯MyModelNeste的控件dItem是單獨的ASCX控件NestedItemEditor.ascx
這只是例如,MyModelNestedItem可以更復雜,我只是想知道我的意思。
現在當我顯示這個項目進行編輯時,我顯示了一個asp:TextBox和一個NestedItemEditor.ascx。在回發頁面上,我收集來自兩者的數據,就是這樣。
問題與MVC:
當我試圖實現這個場景與MVC,我使用的是定製EditorFor(通過使用UIHint和創建共享視圖)。因此,此共享視圖Views \ Shared \ EditorTemplates \ MyModelNestedItem.cshtml現在可以顯示已經在MyModelNestedItem屬性中的數據,但我不知道如何使其返回新輸入的數據。
當父母控制器收到一個post請求時,數據似乎在Request.Form中,但是以文明的方式達到它?當然,最好的解決方案是數據將自動獲取到MyModelItem.ComplexProperty。