2015-10-30 45 views
0

我在頁面上顯示模態局部視圖,需要查看父對象。在局部視圖中將對象傳遞給模態

該模式通過ActionLink啓動。我沒有辦法讓這個模式看到父對象。我已經將部分視圖的模型屬性設置爲父對象的模型,但它無法看到它。

看來這一切都必須通過querystring序列化?有一個更好的方法嗎?我在父對象中有複雜類型(例如列表<>),並且出於安全原因,我不希望它通過查詢字符串(如果它甚至可以)。

是否必須將ViewBag屬性設置爲父對象?

我在這裏有什麼選擇?

+0

沒有看到一個例子(我敦促你提供),我假設你的意思是你在一個視圖上創建一個ActionLink。 ActionLink只是在html中形成一個''標籤。它不能像你想要的那樣傳遞一個對象。當用戶點擊鏈接時,它會看到一個新的視圖事件。 – Wolfie

+0

對,基本上我不能在局部視圖中顯示模態。那麼我將如何處理這一點呢?我需要他們單擊顯示模式的頁面上的鏈接,但模式需要查看父視圖的對象。 – Patrick

回答

0

您必須將對象傳遞給partialview才能看到它。

在查看:

@Html.Action("ChildView", "Controller", new { foo = Model.foo}) 

在控制器:

[ChildActionOnly] 
public ActionResult ChildView(Foo foo) 
{    
    return View(foo); 
} 

如果你不想把它作爲如上圖所示,你可以始終保持狀態中的對象。

+0

我有一個返回PartialView()儘管...模態顯示,但它無法看到父對象。我認爲通過這條路線,父視圖的Model將通過QueryString發送,這是我不能擁有的。 – Patrick

+0

查看此鏈接以瞭解在考慮臨時數據時使用哪個鏈接。 http://www.dotnet-tricks.com/Tutorial/mvc/9KHW190712-ViewData-vs-ViewBag-vs-TempData-vs-Session.html – Ian

+0

你有沒有考慮過實現一個jQuery模態?這也會阻止任何GET請求,因爲數據已經在頁面上。 – Ian

相關問題