我有一个局部视图,有三个下拉菜单,显示在我的网页的几个视图中。从partialview中选择列表的ID不传递给控制器
我需要的最后一个下拉列表中选择的ID发送到控制器: 这是在局部视图中最后一个下拉菜单:
<div class="col-sm-10">
@Html.DropDownList("engines", new SelectList(string.Empty, "Value", "Text"), "--Select engine--", new { @class = "dropdown-toggle form-control" })
</div>
我尝试了很多的可能性,但没有他们工作。当引擎下拉改变时,甚至没有警报不起作用。
$(document).ready(function() {
$("#engines").change(function() {
document.getElementById("btnSearch").disabled = false;
document.getElementById("result").hidden = false;
alert($('#engines').val());
})
我已经试过这种方式,但我控制器的方法不会被调用:
var UrlSettings = {
ModelsUrl: '@Url.Action("GetModels", "Home")',
EngineUrl: '@Url.Action("GetEngines", "Home")',
EngineChange: '@Url.Action("ChangeEngine", "Home")'
}
$(document).ready(function() {
$("#engines").change(function() {
document.getElementById("btnSearch").disabled = false;
document.getElementById("result").hidden = false;
$.ajax({
type: 'POST',
url: UrlSettings.EngineChange,
dataType: 'json',
data: { id: $("#engines").val() },
success: function (engines) {
},
error: function (ex) {
}
});
})`enter code here`
});
这是从控制器的方法,我需要通过id作为参数
public JsonResult ChangeEngine(int? id)
{
return Json(null);
}
这是我的全部局部视图的html代码:
<div class="car-filter-wrapper">
@*@using (Ajax.BeginForm("SearchForCars", "Home", null))//, new AjaxOptions { UpdateTargetId = "DivCategoriesTree", OnSuccess = "success", HttpMethod = "Post" }, new { make = "makes" }))
{*@
@using (Html.BeginForm("SearchForCars", "Home", FormMethod.Post))
{
<div class="col-sm-4" style="height: 10em;display: flex;align-items: center ; padding-top:25px;">
<i class="fa fa-car" style="font-size:60px;color:red; padding-left:20px;"></i>
<strong style="padding-left:20px;"></strong>
</div>
<div class="col-sm-4">
<div style="padding-top:15px;">
<form class="form-control-static">
<div class="form-group">
<div class="row">
<div class="col-sm-10">
@if (ViewData.ContainsKey("makes"))
{
@Html.DropDownList("makes", ViewData["makes"] as List<SelectListItem>, "--Select--", new { @class = "dropdown-toggle form-control" })
}
</div>
</div>
<div class="row">
<div class="col-sm-10">
<p></p>
@Html.DropDownList("models", new SelectList(string.Empty, "Value", "Text"), "--Select--", new { @class = "dropdown-toggle form-control" })
</div>
</div>
<div class="row">
<p></p>
<div class="col-sm-10">
@Html.DropDownList("engines", new SelectList(string.Empty, "Value", "Text"), "--Select--", new { @class = "dropdown-toggle form-control" })
</div>
</div>
</div>
</form>
</div>
</div>
<div class="col-sm-4" style="height: 10em;display: flex;align-items: center ; padding-top:25px;">
<input type="submit" id="btnSearch" onclick="location.href='@Url.Action("SearchForCars", "Home")'" class="btn btn-default active" value="Search" disabled="disabled" style="width:150px;" />
</div>
}
能否请您对这个问题的帮助?
放入部分视图代码HTML –
它是否进行AJAX调用但返回404?或者它根本就没有进行AJAX调用?您是否注意到开发人员工具的控制台中有任何错误? –
@Prashanth Benny - 我用html代码更新了这个问题 – Orsi