/ / Wypełnianie menu rozwijanego danymi JSON w widokach Mvc - javascript, jquery, json, asp.net-mvc, menu rozwijane

Wypełnianie menu z danymi JSON w widokach Mvc - javascript, jquery, json, asp.net-mvc, rozwijane menu

Jestem początkującym, jeśli chodzi o javascript (Json). próbuję wypełnić pole rozwijane na podstawie wyboru innego menu rozwijanego. jak widać na poniższym obrazku jako przykład, próbuję wypełnić menu rozwijane „Wybór reguł” na podstawie menu rozwijanego „Szablon produktu”. próba kodu jest również dostępna.

Każda pomoc będzie doceniona.

Dziękuję Ci

function drFilter()
{
var productTemp = $("#ddlProdTemp :selected").val();
$.getJSON("ptdrFilter", { productTemplate: productTemp }, function (result) {
var ddl = $("#ddl2");
var length = result.length;
ddl.empty();
if (length > 0) {

$(document.createElement("option"))
.attr("value", 0)
.text("-- Please Select --")
.appendTo(ddl);
}

$(result).each(function (will) {
//
$(document.createElement("option"))
.attr("value", result[will])
.text(result[will])
.appendTo(ddl);
});
});
}


public ActionResult ptdrFilter(int id)
{
IUnitOfWork uow = DataAccess.GetUnitOfWork();
using (ManageProductTemplate ptLogic = new ManageProductTemplate(ref uow))
{
List<ProductTemplate> currentpt = ptLogic.GetBy(x => x.ProductTemplateID == id);
List<string> pt = new List<string>();
foreach (var item in currentpt)
{
pt.Add(item.DistributionRule.Name);

}
return Json(pt);
}
}

wprowadź opis obrazu tutaj

Odpowiedzi:

0 dla odpowiedzi № 1
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8" />
<script src="https://code.jquery.com/jquery-3.1.0.slim.min.js"></script>
</head>
<body>

<select id="main">
<option value="a">A</option>
<option value="b">B</option>
</select>

<select id="subselect"></select>

<script>
var sampleData = { a: { value1: "text 1 in a", value2: "text 2 in a" }, b: { value1: "text 1 in b", value2: "text 2 in b" } };
var dataInJSONForm = JSON.stringify(sampleData);
var datainJSObjectForm = JSON.parse(dataInJSONForm);

$("#main").on("change", function (e) {
var valueChosenInMain = $(this).val();
var options = datainJSObjectForm[valueChosenInMain];

var $subselect = $("#subselect");
$subselect.children().detach();
for (var property in options) {
$subselect.append($("<option>", { value: property, text: options[property] }));
}
});
</script>
</body>
</html>