我有一個局部視圖,有三個下拉菜單,顯示在我的網頁的幾個視圖中。從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