我有一个视图,在顶部有一个下拉列表,基本上允许用户选择两个选项之一。现在这个选择的基础我必须在这个页面上显示内容。
现在,什么是正确的方法,我应该创建两个部分视图并将它们放在单独的div中,并根据选择我会使其中一个可见
或者,只有两个div并在其中包含我的chtml标记,并根据用户选择使其中一个可见。
答案 0 :(得分:2)
如果多个视图不需要或通过ajax调用加载,我看不出创建部分视图的任何原因。我只想使用两个div。
答案 1 :(得分:1)
如果您想使用部分视图,可以使用ajax将它们加载到包含内容的单个div中,而不是将它们都放在页面上并隐藏。
对控制器的jquery调用如下所示:
$("#form").submit(function() {
$.ajax({
type: 'POST',
url: '@Url.Action("PartialViewMethod","ControllerName")',
data: $(this).serialize(),
success: function (data) {
$("#contentDivId").html(data);
},
});
}
控制器方法如下所示:
public ActionResult PartialViewMethod (string PartialViewName) {
return PartialView("_" + PartialViewName);
}
假设它包含在提交您要返回的部分视图名称的表单中,这会将部分视图中的html加载到ID为contentDivId
的div中。