私のウェブページのいくつかのビューに表示される3つのドロップダウンを持つ部分的なビューがあります。 これは、部分図の最後のドロップダウンです:partialviewの選択されたリストのIDはコントローラに渡されません
<div class="col-sm-10">
@Html.DropDownList("engines", new SelectList(string.Empty, "Value", "Text"), "--Select engine--", new { @class = "dropdown-toggle form-control" })
</div>
私は多くの可能性を試したが、どれ、私はコントローラに最後のドロップダウンリストの選択されたIDを送信する必要が
彼らの働いた。エンジンのドロップダウンが変更されても、アラートは機能しません。
$(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>
}
この問題についてお手伝いできますか?
部分図コードを入れてください。 –
AJAXコールをしていますが、404を返していますか?それともAJAX呼び出しをまったくしないのですか?デベロッパーツールのコンソールにエラーが表示されましたか? –
@Prashanth Benny - 私はhtmlコード – Orsi