将javascript挂起以丢弃列表更改
本文关键字:列表 javascript 挂起 | 更新日期: 2023-09-27 18:19:34
你好!
我目前的任务是有一个页面,通过下拉列表,用户可以选择一个甲板标题。一旦选择了标题,页面就应该回发该卡片组上的详细信息。
以下是我现在得到的:
@model IEnumerable<SCATChartsMVC.Models.Charts_DeckList>
@{
ViewBag.Title = "Index";
if (IsPost) { ViewBag.Title = "We posted back!"; }
}
<h2>Index</h2>
@{ var list = ViewData.Model.Select(cl => new SelectListItem
{
Value = cl.RecNum.ToString(),
Text = cl.DeckTitle.ToString()
});
}
@using (Html.BeginForm("Details", "Charts_DeckList", FormMethod.Post))
{
@Html.DropDownList("deckTitles", list, "---------select---------")
<input type="submit" name="submit" value="Submit" />
@Html.ActionLink("Details", "Details", "Charts_DeckList", new { id = list.ElementAt(4).Text }, "")
}
<script src="~/Scripts/jquery-1.10.2.js"></script>
<script>
$("deckTitles").change(function () {
if ($("#deckTitles").val() != "") {
var test = {};
test.url = "/Charts_DeckList/Details";
test.type = "POST";
test.data = JSON.stringify($('#deckTitles').val());
test.datatype = "json";
test.contentType = "application/json";
test.success = true;
test.error = function () { alert("Error!"); };
$.ajax(test);
}
})
</script>
Html.BeginForm下的input标记和ActionLink是为了我自己的测试目的;如果我指定了元素,ActionLink就会正常工作。我希望每当用户点击一个选择时,而不是每当他们点击"详细信息"按钮时,都能传递类似的信息。
提交输入标记无效。它确实正确地路由到Charts_DeckList/Details,但操作中的参数始终为null。
我刚刚进入了整个MVC/Web的胡言乱语,所以有很多我不知道的事情,我甚至没有意识到我不知道。虽然我在互联网上看到了许多不同的资源在暗示不同的东西,但在这个时候,我已经忘记了很多网络开发术语,也忘记了这些东西在引擎盖下的工作方式,因为VS似乎自动地把很多东西组合在一起。
任何建议都将不胜感激。非常感谢。
巴里克下面的建议是正确的!
我还必须将脚本标记向上移动到BeginForm括号中。
您没有在那里设置DropDownList
的ID,第一个参数设置下拉列表的name
属性(用于标识服务器回发上POST变量集合中的值)-您需要添加另一个参数来设置ID:
@Html.DropDownList("deckTitles", list, "---------select---------", new { @id = "deckTitles" });
然后,您可以在jQuery中选择如下所示的值:
$("#deckTitles option:selected").val();