我想使用 jQuery 到 select 一个将使用 Razor 调出 PartialView 的列表项
I want use jQuery to select a list item that will use Razor to bring up a PartialView
我已经设置了Tabs List的值,用alert证明。但是,Create Partial 视图被重新加载我想强制它转到 PartialView I select。所以在我的示例中,我希望用户:
- select 来自 BirthdayIDs 列表,
- 然后主视图刷新,
然后屏幕不应该转到列表中的第一个,但我想从保存的值中获取(现在我只想将它插入列表选项值中。
@using (Html.BeginForm("Index", "Birthday", FormMethod.Post, new { id = "frmBirthday", enctype = "multipart/form-data" }))
{
<input type="hidden" id="hdnAction" name="Action" />
@Html.LabelFor(model => model.SelectedBirthdayID, new { @class = "table-label" })
@:
@Html.DropDownListFor(model => model.SelectedBirthdayID, Model.BirthdayIDs, "Select...", new { id = "ddlBirthdayID", width = "250px" }) @:
@:
@Html.ActionLink("Create New Birthday Party", "Index", "Birthday") <br /><br />
<div id="tabs">
<ul>
<li><a href="#Create">Birthday Create</a></li>
<li><a href="#Cards">Cards</a></li>
<li><a href="#Gifts">Gifts</a></li>
<li><a href="#Guests">Guests</a></li>
<li><a href="#Food">Food</a></li>
</ul>
<div id="Create">
@Html.Partial("_Create")
</div>
<div id="Cards" >
@Html.Partial("_Cards")
</div>
<div id="Gifts">
@Html.Partial("_Gifts")
</div>
<div id="Guests">
@Html.Partial("_Guests")
</div>
<div id="Food">
@Html.Partial("_Food")
</div>
</div>
}
//jQuery
$(函数(){
$("#tabs").tabs();
$('#ddlBirthdayID').change(function () {
$('#hdnAction').val("ddlchange");
$('#frmBirthday').submit();
});
$('#ddlBirthdayID').change(function () {
$('#tabs').val(3);
alert($("#tabs").val());
});
您正在尝试混合使用客户端和服务器端技术。交付页面时会呈现部分内容。选择仅在客户端发生。
您的选择是:
- 用不同的部分刷新整个页面(例如,根据一个额外的参数来选择选择)
- 渲染所有部分并简单地隐藏您不想要的部分,并显示所选的部分或
- load the partial views using Ajax (e.g. into a fixed panel), whenever the selection changes
例如要隐藏它们,请在所有这些面板上使用通用的 class(最初隐藏它们并让客户端代码在选择更改时显示所需的面板)。
正确的选择取决于您网页的其他因素,因此在我确定哪个选项最适合您的情况之前,需要更多信息。
注意:为了提供更好的示例,您还需要展示您的控制器操作和其他视图的示例
我已经设置了Tabs List的值,用alert证明。但是,Create Partial 视图被重新加载我想强制它转到 PartialView I select。所以在我的示例中,我希望用户:
- select 来自 BirthdayIDs 列表,
- 然后主视图刷新,
然后屏幕不应该转到列表中的第一个,但我想从保存的值中获取(现在我只想将它插入列表选项值中。
@using (Html.BeginForm("Index", "Birthday", FormMethod.Post, new { id = "frmBirthday", enctype = "multipart/form-data" })) { <input type="hidden" id="hdnAction" name="Action" /> @Html.LabelFor(model => model.SelectedBirthdayID, new { @class = "table-label" }) @: @Html.DropDownListFor(model => model.SelectedBirthdayID, Model.BirthdayIDs, "Select...", new { id = "ddlBirthdayID", width = "250px" }) @: @: @Html.ActionLink("Create New Birthday Party", "Index", "Birthday") <br /><br /> <div id="tabs"> <ul> <li><a href="#Create">Birthday Create</a></li> <li><a href="#Cards">Cards</a></li> <li><a href="#Gifts">Gifts</a></li> <li><a href="#Guests">Guests</a></li> <li><a href="#Food">Food</a></li> </ul> <div id="Create"> @Html.Partial("_Create") </div> <div id="Cards" > @Html.Partial("_Cards") </div> <div id="Gifts"> @Html.Partial("_Gifts") </div> <div id="Guests"> @Html.Partial("_Guests") </div> <div id="Food"> @Html.Partial("_Food") </div> </div>
}
//jQuery
$(函数(){ $("#tabs").tabs();
$('#ddlBirthdayID').change(function () { $('#hdnAction').val("ddlchange"); $('#frmBirthday').submit(); }); $('#ddlBirthdayID').change(function () { $('#tabs').val(3); alert($("#tabs").val()); });
您正在尝试混合使用客户端和服务器端技术。交付页面时会呈现部分内容。选择仅在客户端发生。
您的选择是:
- 用不同的部分刷新整个页面(例如,根据一个额外的参数来选择选择)
- 渲染所有部分并简单地隐藏您不想要的部分,并显示所选的部分或
- load the partial views using Ajax (e.g. into a fixed panel), whenever the selection changes
例如要隐藏它们,请在所有这些面板上使用通用的 class(最初隐藏它们并让客户端代码在选择更改时显示所需的面板)。
正确的选择取决于您网页的其他因素,因此在我确定哪个选项最适合您的情况之前,需要更多信息。
注意:为了提供更好的示例,您还需要展示您的控制器操作和其他视图的示例