我在玩ASP.NET MVC 4,但我對理解有些問題。爲了更好的解釋,我將使用一個簡單的「合成」情況。 比方說,我有一個2個屬性模特人:ASP.NET MVC 4 - 從視圖更新模型
- 字符串名稱
- PersonType類型(如學生,員工,軍事......)
讓我們在我的控制器說我有私有財產人。我可以在Index方法中初始化這個對象,傳入View並構建html頁面。好。
現在,當用戶在客戶端更新人員實例的字段之一(他可以輸入新的人員姓名或使用下拉列表選擇新的人員類型)時,我想立即更新我的模型。所以,我的一般問題是我該如何實現它?
明顯的解決方案對我來說:我可以發送一個ajax請求控制器從JS與新的數據。我認爲我可以調用控制器的方法UpdateName(字符串名稱)並手動更新屬性名稱與新數據。但是我的人員實例在這個方法裏面是NULL!我的第二個問題是爲什麼我不能從其他方法訪問初始化模型對象?我認爲這都是關於我對客戶端服務器交互的不瞭解。
我的情況的最後一種情況是:當用戶點擊按鈕「保存」時,我想將創建的人員保存到服務器端的文件中,但我不想使用任何表單並在剛剛收到所有需要的數據後點擊這個按鈕(因爲在我真正的任務中,我不能使用表單,並且在點擊按鈕後我無法從html頁面接收所有需要的字段)。
我發現了骯髒的解決方案。在JS中,我創建了具有相同屬性的另一個類Person。現在,我可以在需要時更新此類的實例,並將json數據傳遞給服務器以進行保存。
有沒有更好的解決方案?
大衛,謝謝你真正有用的解釋!通過「我不想使用任何形式」我的意思是,在我的真實項目中,我無法通過單擊按鈕從頁面收集所有必需的字段。我使用的是動態加載的部分視圖,點擊按鈕時可以從頁面中刪除一些字段。那麼,我應該使用JavaScript ViewModel來獲取始終最新的數據嗎? –