MVC从局部视图获取模型

时间:2014-01-30 07:58:35

标签: c# asp.net-mvc-4

我是MVC的新手,我试图隐藏我的一个webform项目。

我有一个请求页面,根据我选择的下拉菜单,控件是否已填充。

有10种请求类型,所以我考虑使用局部视图。我将在选择更改事件上发出ajax请求,并且根据所选内容,我将返回局部视图,但是当我提交主页面时,我将如何检索部分视图的模型,我可以单独检索主要模型页面和部分页面。

1 个答案:

答案 0 :(得分:0)

Yu无法将模型从客户端传递到服务器以呈现部分视图。所以,不,那是不可能的。

由于您希望根据所选项目提供不同的局部视图,因此您需要将此信息传递给浏览器,以便它可以决定调用哪个操作来呈现与所选项目相对应的视图。为此,您可以在下拉列表中将此信息添加为每个元素的value。这个value可以是一个简单的id,也可以是一个复杂的整个url,其参数可以调用所需的视图。 (如果选择url选项,则可以使用Url.Action url helper扩展名进行渲染。

然后,在处理change事件的代码中,您可以恢复所选项的value,并将其用作参数,以进行将呈现所需部分视图的ajax调用。 (例如,如果它是url,则可以使用jQuery.get()或任何其他jQuery ajax方法和该URL。

理想情况是您可以渲染局部视图,而不依赖于先前的主视图重新编译。即理想情况是,您可以使用ajax调用中收到的操作和参数为部分构建模型。

但是,如果您需要在渲染主视图时必须生成某些信息,则可以使用TempData在渲染主视图时使用它来存储它,并在渲染部分时检索它。 (TempDataSession取决于你想要做什么)。