2011-08-23 84 views
0

我有強烈鍵入的視圖。這裏面我觀點有jQueryUI的標籤,即打電話給我的控制器,並返回一個局部視圖將viewmodel傳遞給ajax控制器的動作,返回部分與該模型?

("#tab0").load('@Url.Action("ProfileImage", "User")'); 

public ActionResult ProfileImage() 
{ 
      return PartialView("_ProfileImage"); 
} 

我希望做的是點擊後從「父」視圖通過該模型,然後可以結合控制器它到部分當它返回時:

("#tab0").load('@Url.Action("ProfileImage", "User", new {model=model})'); 

public ActionResult ProfileImage(UserViewModel model) 
{ 
      return PartialView("_ProfileImage", model); 
} 

這可能嗎?這通常如何完成?如果您在一個視圖中有模型數據,並且您想將其傳遞到異步加載的局部視圖?

回答

0

你可以在你的視圖模型創建的toJSON方法,這可能是這樣的:

 public IHtmlString ToJson() 
     { 
      return MvcHtmlString.Create(Json.Encode(this)); 
     } 

它只是序列化視圖模型成JSON。 IHtmlString returntype確保輸出在您的視圖中不被編碼。 到控制器的調用將是這樣的:

("#tab0").load('@Url.Action("ProfileImage", "User", new {model=model.ToJson()})'); 

JSON的模型綁定器可以重新在服務器端的視圖模型。你可能會遇到一些問題,但我猜沒有什麼不可解決的。

+0

嘿謝謝,是不是有一個toJson包含在.Net某處或者它不工作? –

+0

不是我所知道的,但是在這種情況下,您肯定想要返回一個IHtmlString,或者由於編碼而導致您的模型被搞砸了。 –

+0

有這個東西Json.Encode ..似乎編碼它。但我不知道如果使用這個jquery加載函數是處理這個錯誤的方法。也許我應該建立一個Ajax查詢? –

相關問題