我正在ViewBag
中检索我的值列表,并且我在adropdownlist中显示ViewBag
个值,但我无法在HttpPost
操作中发布下拉列表值。如果我正在使用按钮值传递给HttpPost
动作,则ajax jquery不传递值。请帮帮我
<script type="text/javascript">
$(document).ready(function () {
$("#refresh").change(function (e) {
$.ajax({
type: "POST",
url: '@Url.Action("update", "Home")',
});
e.preventDefault();
});
});
</script>
&#13;
@using (Html.BeginForm())
{
for (int i = 0; i < Model.Count(); i++)
{
@Html.DropDownList("StateType", ViewBag.StateType as SelectList, new { @id = "refresh" })
}
}
[HttpPost] ///values are not passing here
public ActionResult update(FormCollection FC)
{
}
&#13;
答案 0 :(得分:0)
这是它应该如何运作的:
第一控制器:
public ActionResult Index()
{
// put data into Viewbag
ViewBag.StateType = methodThatReturnsSelectList();
return View();
}
使用了Index.cshtml,因为View()没有参数,控制器的名称是Index。
@using (Html.BeginForm())
{
for (int i = 0; i < Model.Count(); i++)
{
@Html.DropDownList("StateType", ViewBag.StateType as SelectList, new { @id = "refresh" })
}
<script type="text/javascript">
$(document).ready(function () {
$("#refresh").change(function (e) {
$.ajax(
{
type: "POST",
url: '@Url.Action("update", "Home")',
data: $( "#myselect" ).val();
});
e.preventDefault();
});
});
</script>
此AJAX调用向控制器HOME和操作更新(第二个控制器)发出POST请求,并给出myselect id的值,因此在控制器中捕获它:
[HTTPOST]
public ActionResult Update(string value)
{
// doing stuff
}
我认为它会澄清怎么做,它会帮助你。