私は現在ViewComponent
(ViewComponent1)ビュー内でコーディングしています。このビュー内で、私はいくつかの項目を挙げました:別のViewComponent内でViewComponentを呼び出す
ご覧のとおり、チャンネル11,12,13,14はクリック可能です。各チャンネルにはいくつかの追加情報(OBIS、avtalsid ..など)があります。私がしようとしているのは、ViewComponent1内でViewComponent2を呼び出し、クリックされた項目に基づいてデータの一部を渡すことです。
私は何をしようとしたことは「テスト」と呼ばれる別のView
を作成し、そのView
以内に次のように、そのパラメータと共にViewComponent2を呼び出すことです:
<div class="row">
<div class="col-md-2 canalstyle">
<a asp-controller="Customer" asp-action="Test" asp-route-pod="@item.STATION"
asp-route-idnr="@item.IDNR" asp-route-kanal="@item.KANAL" asp-route-start="@Model.start"
asp-route-end="@Model.end"> @Html.DisplayFor(modelItem => item.KANAL)</a>
</div>
</div>
これは動作しますが、この方法は離れて私から私をリダイレクトします現在View
(ViewComponent 1)。私はそれを望んでいない。私は現在のビューにViewComponent2から追加情報をロードしたい。
function myFunction() {
var data = JSON.stringify({
'idnr': id,
'start': this.start,
'end': this.end
});
$.ajax({
url: '@Url.Action("Test2","Customer")',
type: 'GET',
data: { idnr: id, start: this.start, end: this.end },
contentType: 'application/json',
success: handleData(data)
})
};
function handleData(data) {
alert(data);
var url = $(this).attr("href");
var $target = $(this).closest("div").find(".details");
$.get(url, function (res) {
$target.html(res);
});
//do some stuff
}
そして、私のTest2を処置::
public async Task<IActionResult> Test2(string idnr, string start, string end)
{
ServiceClient r2s = new R2S.ServiceClient();
R2S.Konstant[] kData = r2s.GetKonstantListAsync(new string[] { "IDNR" }, new string[] { idnr}).Result; // mätarnummer in... --> alla konstanter kopplade till denna.
return ViewComponent("MeterReader2", new { k = kData[0], start = start, end = end });
}
私は同じDOMをターゲットにしようとしています。..任意のアイデアAJAXを実行します
My機能?
私は別のフォローアップの質問を持っている...それは、上記の方法から、可能ですjavascriptの値に基づいていくつかのルート値を渡す?私は同じアクションに渡したい日付の2つのテキストフィールドを持っています... – jazy
はい。 jsコードの 'url'変数を任意のルートキー値で更新することができます。 – Shyju
javascript変数this.startとthis.endがあるとすれば、そのurl変数はどのように実装されますか?私はあなたのコードを2つのルートキー値でさらに拡張しました:asp-route-start = "" asp-route-end = "" – jazy