1

我有一个视图,顶部有一个下拉列表,基本上允许用户选择两个选项之一。现在,基于此选择,我必须在此页面上显示内容。

现在,正确的方法是什么,我应该创建两个局部视图并将它们放在单独的 div 中,并根据选择让其中一个可见

或者,只有两个 div 并在其中包含我的 chtml 标记,并根据用户选择使其中一个可见。

4

2 回答 2

2

如果多个视图不需要它们或由 ajax 调用加载,我看不到创建部分视图的任何原因。我会简单地使用两个 div。

于 2012-07-25T06:53:23.843 回答
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 的 div 中contentDivId

于 2012-07-25T20:50:42.277 回答