2014-01-30 127 views
0

我是MVC的新手,我试图隐藏我的一个webform项目。MVC从局部视图获取模型

我有一个请求页面,取决于我选择的下拉列表,控件被填充。

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

回答

0

Yu没有办法将模型从客户端传递到服务器以渲染局部视图。所以,不,这是不可能的。

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

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

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

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