0
A
回答
0
我對這個問題有點不清楚,所以糾正我,如果我錯了。我假設你正在談論你傳遞給視圖的模型以及表單發佈後返回的模型。
不,他們不一定是相同的,但你可能會有相當多的重疊。進入視圖的模型應包含Post所需的所有字段,如果存在驗證錯誤,您需要將數據發回。
我的模型是相同的,原因是我使用的模型通常只包含與窗體上的元素相對應的屬性。如果我需要額外的數據,也許是一個頁面標題,我通常會直接添加到ViewData。
如果您在模型類上有其他屬性,並且您在Post上使用自動綁定,那麼如果有人在傳輸中修改了Post請求並添加了與模型中未使用的屬性相對應的額外數據,自動綁定程序會綁定那些在最糟糕的情況下可能用於類似SQL注入攻擊的數據(最好的情況是您的應用程序處於未知狀態)。所以我的建議是不要這樣做。如果你絕對必須假設你有一些基於頁面上的其他元素顯示和隱藏的字段,請使用手動綁定,並且不要綁定不應包含數據的字段。
0
當然,您可以在控制器的參數中使用不同的類,而不是您發送給視圖的類,這通常會非常有用。例如,我經常有一些表單將一個父實體傳遞給該視圖,但該視圖將一個包含將成爲一個子實體的新實例的東西的表單發回。您也可以處理來自客戶端的其他字段。
模型結合具有與從試圖排除在釘裝類屬性處理從結合
這裏加載屬性是一個例子:
public ActionResult AddComment(
[Bind(Exclude = "commentId"] Comment userComment, bool notifyUser
)
{
// do stuff to add comment to the DB
// notifyUser is a checkbox passed from client, but isn't stored in DB
// now return the comment view to the client but that view needs the entire thread
var model = GetThread();
return View("Comment", model);
}
相關問題
- 1. MVC.Net綁定複雜模型?
- 2. 模型綁定和派生模型類
- 3. 使用XAML綁定和視圖模型
- 4. MVC3模型綁定同類型
- 5. 使用動態視圖模型綁定ASP.NET MVC模型
- 6. Webforms模型綁定和複雜類型
- 7. 使用模型綁定將模型手動綁定到ASP.NET FormView
- 8. 多個視圖和數據模板綁定到相同的視圖模型
- 9. 模型綁定自定義類型
- 10. 驗證視圖模型後,定製模型綁定
- 11. 使用模型綁定
- 12. 與自定義模型綁定的遞歸模型綁定
- 13. 視圖和視圖模型必須位於相同的位置
- 14. MVC-模型綁定的複雜類型
- 15. WebApi模型綁定的繼承類型
- 16. Angularjs:模型綁定
- 17. DropDownListFor - 模型綁定
- 18. MVC模型綁定
- 19. Laravel模型綁定
- 20. 綁定到模型
- 21. 從視圖模型的條件綁定?
- 22. 視圖模型在backbone.js中的綁定
- 23. MVC3和JSON模型綁定
- 24. ASP.NET MVC和模型綁定?
- 25. TDD和MVC模型綁定
- 26. VaryByCustom和模型綁定
- 27. Asp.net MVC類型雙模型綁定器
- 28. ASP.NET MVC:模型綁定複雜類型
- 29. 模型綁定 - 運行時類型
- 30. ASP.NET模型綁定到基類型
還有另一種可能性,([裝訂(排除=「字段「)] ViewModel data) – queen3 2009-10-03 10:46:39
嗯,那麼我可以將它綁定到我的模型,排除一些字段,並根據需要從請求中拉出那些被排除的字段...並將我的對象準備好轉儲到數據庫中。 – BigOmega 2009-10-03 22:06:47