これに関連するいくつかの投稿を見てきましたが、機能するようには見えません。リダイレクトすると、「リソースが見つかりません」というエラーが表示されます。
詳細ページにリダイレクトしようとしています。 NestIdとして保存する要素にIDがあり、それを最終的にビューに渡すことができます。今は、詳細ページにリダイレクトしたいだけです。モデルやそれに接続されているものはありません。 NestIdをそこに作成して、さらに多くのAJAXを呼び出して使用できるようにします。
これが私のjQueryです。
$('#results').on('click', '.item', function () {
var NestId = $(this).data('id');
var url = '@Url.Action("Details, Artists")';
window.location.href = url;
})
コントローラの機能は次のとおりです。
public ActionResult Details(string NestId)
{
ViewBag.NestId = NestId;
return View();
}
私はこれを正しい方法で行っているかどうかはわかりませんが、助けていただければ幸いです、私はしばらくの間これで失速しました。ありがとう!
クリックハンドラーが正常に呼び出された場合、これは機能するはずです。
$('#results').on('click', '.item', function () {
var NestId = $(this).data('id');
var url = "/Artists/Details?NestId=" + NestId;
window.location.href = url;
})
編集:この特定のケースでは、アクションメソッドのパラメータがnullableの文字列である場合、NestId == null
、ModelBinderが文句を言わないのであれば、例外はまったく発生しません。
私はこのようにしていた
内部view
<script type="text/javascript">
//will replace the '_transactionIds_' and '_payeeId_'
var _addInvoiceUrl = '@(Html.Raw( Url.Action("PayableInvoiceMainEditor", "Payables", new { warehouseTransactionIds ="_transactionIds_",payeeId = "_payeeId_", payeeType="Vendor" })))';
on javascriptファイル
var url = _addInvoiceUrl.replace('_transactionIds_', warehouseTransactionIds).replace('_payeeId_', payeeId);
window.location.href = url;
このようにして、必要に応じてパラメータ値を渡すことができます。
@ Html.Rawを使用すると、urlはパラメータに対してamp;を取得しません
これはまた私が信じています:
$('#results').on('click', '.item', function () {
var NestId = $(this).data('id');
var url = '@Html.Raw(Url.Action("Artists", new { NestId = @NestId }))';
window.location.href = url;
})