2015-10-30 47 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

相关问题