簡體   English   中英

ASP.NET MVC:使用我的編輯操作時,如何獲得實際的 object?

[英]ASP.NET MVC: How can I get my actual object when using my Edit action?

我剛開始玩 asp.net mvc,我有一個非常基本的問題:

如果我有一個顯示有關System.Web.Mvc.ViewPage<Foo>信息的視圖,當將表單值傳遞給我的 FooController 上的編輯操作時,如何獲得實際的 object? 默認情況下,我得到了 Edit 操作的這個實現:

public ActionResult Edit(int id, FormCollection collection)

有什么辦法可以讓我再次像這樣超載嗎?

public ActionResult Edit(int id, Foo myObject)

謝謝。

編輯:

對不起,伙計們,只是多一點背景知識,所以你明白我在想做什么......因為我有自己的框架來重播我對實體所做的更改,我不需要重新查詢我的實體和使用 UpdateModel() 方法。 我最終做的只是有一個這樣的方法:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(Foo myObject)
{
}

我不知道,但這工作得很好。 感謝導致我這篇文章的答案: http://www.haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx

您可能會編寫一些瘋狂的類型轉換器,但是有幫助方法 map 從 FormCollection 到您的 Foo object 的值。

編輯:我認為它實現為擴展方法,稱為 UpdateFrom(..)

實現編輯方法的最簡單方法是使用已包含在 Controller 基礎 class 中的 UpdateModel 方法,如下所示:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, FormCollection collection)
{

    LinqEntity entity = MyRepository.GetEntity(id);
    UpdateModel(entity);

    //validate and save your entity here

}

編輯:我也剛剛開始學習 ASP.NET MVC,發現 ScottGu 的 MVC 演練非常有用。 它展示了如何實現一個簡單的 MVC 網站(您可以在 nerddinner.com 上看到它),並涵蓋了許多像上面一樣的普通主題。

相關問題:
如何使用 json 將復雜類型傳遞給 ASP.NET MVC controller

這可能會滿足您的需求。

如果您需要查看操作方法 go 到nerddinner.com並下載源代碼。 該站點由 Scott Gu、Phil Haack 和其他人開發,用於展示如何進行 MVC...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM