我是MVC的新手,我试图隐藏我的一个webform项目。
我有一个请求页面,根据我选择的下拉菜单,控件是否已填充。
有10种请求类型,所以我考虑使用局部视图。我将在选择更改事件上发出ajax请求,并且根据所选内容,我将返回局部视图,但是当我提交主页面时,我将如何检索部分视图的模型,我可以单独检索主要模型页面和部分页面。
答案 0 :(得分:0)
Yu无法将模型从客户端传递到服务器以呈现部分视图。所以,不,那是不可能的。
由于您希望根据所选项目提供不同的局部视图,因此您需要将此信息传递给浏览器,以便它可以决定调用哪个操作来呈现与所选项目相对应的视图。为此,您可以在下拉列表中将此信息添加为每个元素的value
。这个value
可以是一个简单的id,也可以是一个复杂的整个url,其参数可以调用所需的视图。 (如果选择url选项,则可以使用Url.Action
url helper扩展名进行渲染。
然后,在处理change
事件的代码中,您可以恢复所选项的value
,并将其用作参数,以进行将呈现所需部分视图的ajax调用。 (例如,如果它是url,则可以使用jQuery.get()
或任何其他jQuery ajax方法和该URL。
理想情况是您可以渲染局部视图,而不依赖于先前的主视图重新编译。即理想情况是,您可以使用ajax调用中收到的操作和参数为部分构建模型。
但是,如果您需要在渲染主视图时必须生成某些信息,则可以使用TempData
在渲染主视图时使用它来存储它,并在渲染部分时检索它。 (TempData
或Session
取决于你想要做什么)。