我正在忙着调查以下内容的可能性:
我有一个搜索'视图。我有3个实体,人,车和房子。我想使用此搜索屏幕根据用户选择的实体类型动态构建搜索条件。
如果用户想要搜索“人物”,那么我想动态返回人物特定搜索条件的部分视图,例如姓名。或者,如果他们选择了Car,则会针对“引擎大小”等搜索条件返回不同的局部视图。
如何做到这一点?如果我可以通过ajax调用返回部分视图到控制器方法(以避免回发),那将是一个巨大的奖金。
答案 0 :(得分:0)
首先在他们自己的div中渲染所有的部分,如此
<div id="personSearch">
@Html.Partial("PartialView1")
</div>
<div id="carSearch">
@Html.Partial("PartialView1")
</div>
<div id="houseSearch">
@Html.Partial("PartialView1")
</div>
jQuery代码,我们首先隐藏所有3个过滤器,然后我们可以动态地根据用户选择的标准来设置div
这样的事情
$(function()
{
// Hide all divs
$('#personSearch').hide();
$('#carSearch').hide();
$('#houseSearch').hide();
// This is the ID of a dropdownlist for Person, Car or House selection
$('#UserCriteria').change(function ()
{
var value = $(this).val();
// 1 id the int id for Person
if(value == 1)
{
$('#personSearch').slideDown();
$('#carSearch').slideUp();
$('#houseSearch').slideUp();
}
// 2 id the int id for Car
if(value == 2)
{
$('#personSearch').slideUp();
$('#carSearch').slideDown();
$('#houseSearch').slideUp();
}
// 3 id the int id for House
if(value == 3)
{
$('#personSearch').slideUp();
$('#carSearch').slideUp();
$('#houseSearch').slideDown();
}
}.change();
});
所以我们在这里真正做的是基本上将所有部分视图渲染到页面上,但是如果默认值为null,则在$('#UserCriteria')上使用.change()将不会发生任何事情,但是如果默认值为“Person”(id = 1)。 personSearch div将slideDown并显示您的部分视图。
我希望这就是你要找的东西:)