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

时间:2012-02-24 17:21:55

标签: c# jquery asp.net-mvc-3

我希望有一个名为Example的视图,并且能够更新并将不同的部分视图加载到一个html div标记中。在下面的情况下,如果URL参数是搜索,我希望页面显示部分详细信息(如果URL参数是id或结果网格)。

可选的网址参数: .... /实施例?ID = 1234 .... /实施例?搜索= CCC

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

Example.cshtml中的Div标记

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

我只是停留在发生部分视图过滤的地方,jquery或控制器中?

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

您的控制器应将视图模型传递给视图。此视图模型可以部分加载:

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>