我有一个视图,顶部有一个下拉列表,基本上允许用户选择两个选项之一。现在,基于此选择,我必须在此页面上显示内容。
现在,正确的方法是什么,我应该创建两个局部视图并将它们放在单独的 div 中,并根据选择让其中一个可见
或者,只有两个 div 并在其中包含我的 chtml 标记,并根据用户选择使其中一个可见。
我有一个视图,顶部有一个下拉列表,基本上允许用户选择两个选项之一。现在,基于此选择,我必须在此页面上显示内容。
现在,正确的方法是什么,我应该创建两个局部视图并将它们放在单独的 div 中,并根据选择让其中一个可见
或者,只有两个 div 并在其中包含我的 chtml 标记,并根据用户选择使其中一个可见。
如果多个视图不需要它们或由 ajax 调用加载,我看不到创建部分视图的任何原因。我会简单地使用两个 div。
如果要使用部分视图,可以使用 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 的 div 中contentDivId
。