¡HOLA!
我目前的任务是建立一个页面,通过下拉列表,用户可以选择一个套牌标题。一旦选择了标题,该页面应该回发该套牌上的详细信息。
这就是我现在所拥有的:
@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下的输入标记和ActionLink是出于我自己的测试目的;如果我指定元素,ActionLink可以正常工作。我希望能够在用户点击选择时传递类似的内容,而不是每当他们点击“详细信息”按钮时。
提交输入标记不起作用。它确实正确地路由到Charts_DeckList / Details,但是action中的参数始终为null。
我刚刚进入整个MVC / Web rigamarole,所以有很多我不知道我甚至不知道我不知道。虽然我已经在互联网上看到了许多不同的资源,这些资源显示出不同的东西,但是此时很多网络开发术语都在我身上丢失了,而且自从VS以来,这些东西的大部分工作方式都在我身上消失了。似乎自动将这么多的东西放在一起。
任何指针都将不胜感激。谢谢。
我还必须将脚本标记移动到BeginForm括号中,抬头。
答案 0 :(得分:0)
您没有在那里设置DropDownList
的ID,第一个参数设置下拉列表的name
属性(用于标识服务器回发时POST变量集合中的值) - 您'我需要添加另一个参数来设置ID:
@Html.DropDownList("deckTitles", list, "---------select---------", new { @id = "deckTitles" });
然后,您可以按如下方式在jQuery中选择所选值:
$("#deckTitles option:selected").val();