-1
コントローラのメソッドからデータを取得しようとしました。私はコントローラからデータを取得するためにAJAXコードを書いていますが、それは仕事をしていないようです(コントローラからデータを取得しない)。たぶん私はAJAXリクエストメソッドのコントローラのいずれかで何かを見逃している可能性があります。mvcのコントローラからデータを取得するためにajaxリクエストを処理しています
私はお互いに2つのドロップダウンを持っています。私は、ユーザーが選択する最初のドロップダウンの選択に基づいてコントローラからデータを取得することで、2番目のドロップダウンにデータを挿入しようとしています。
私は本当にこの問題についていくつかのガイダンスや助けに感謝します。
public ActionResult ptdrloFilter(int id)
{
int customerId = (int)System.Web.HttpContext.Current.Session["CustomerID"];
IUnitOfWork uow = DataAccess.GetUnitOfWork();
using (ManageProductTemplate ptLogic = new ManageProductTemplate(ref uow))
{
List<ProductTemplate> currentpt = ptLogic.GetBy(x => x.ProductTemplateID == id);
List<string> returnDisString = new List<string>();
List<string> pt = new List<string>();
var getDRString = (from drule in Drulelogic.GetCustomerProdIndexString(customerId, id).List
select new { drule.Name, drule.DistributionRuleID }).ToList();
foreach (var item in getDRString)
{
returnDisString.Add(item.Name);
}
returnDisString = returnDisString.Distinct().ToList();
return Json(returnDisString, JsonRequestBehavior.AllowGet);
}
}
function drFilter() {
$.ajax({
type: "json",
data: { id: 1 },
url: @Url.Action("ptdrloFilter"),
success: function(result) {
drFilter(result);
}
});
var dataInJSONForm = JSON.stringify(result);
var datainJSObjectForm = JSON.parse(dataInJSONForm);
$('#dd1').on('change', function (e) {
var valueChosenInddl2 = $(this).val();
var options = datainJSObjectForm[valueChosenInddl2];
var $subselect = $('#subselect');
$subselect.children().detach();
for (var property in options) {
$subselect.append($('<option>', {
value: property,
text: options[property]
}));
};
});
}
<div class="editor-field">
<select id="dd1">
<option value="Default">Default</option>
<option value="PTDR">PT/DR</option>
<option value="All">All</option>
</select>
<select id="subselect"></select>
</div>
おかげで機能であり
コントローラ名がありません私は –
これは問題かもしれません。アクションが呼び出し側と同じコントローラ上にある場合、これを行う必要はありません – Liam
私はajaxを初めて使用しているため、関数のパラメータについて詳しく説明できますか? – user5813072