使用mvc3和jQuery根据URL参数加载某个部分视图

本文关键字:加载 个部 视图 参数 URL mvc3 jQuery 根据 使用 | 更新日期: 2023-09-27 18:25:38

我想要一个名为Example的视图,并且能够更新不同的局部视图并将其加载到一个htmldiv标记中。在下面的例子中,如果URL参数是id,我希望页面显示一个详细信息部分,或者如果URL参数为search,则显示一个结果网格。

可选URL参数:…./示例?id=1234…./示例?搜索=ccc

用户将传入上面的其中一个,_details.cshtml或_grid.cshtml将更新下面的详细信息div。

Example.cshtml 中的Div标记

<div id="Details"></div>

我只是纠结于部分视图过滤将在哪里进行,jquery还是在控制器中?

如有任何帮助,我们将不胜感激。

使用mvc3和jQuery根据URL参数加载某个部分视图

您的控制器应该向视图传递一个视图模型。此视图模型可以加载部分:

public class MyViewModel
{
    public string DetailsPartial { get; set; }
}

然后基于id或搜索参数的存在,控制器将填充此属性:

public ActionResult Index(int? id, string search)
{
    var model = new MyViewModel
    {
        DetailsPartial = (id != null) ? "_details" : "_grid"
    }; 
    return View(model);
}

在相应的视图中:

@model MyViewModel
...
<div id="Details">
    @Html.Partial(Model.DetailsPartial)
</div>