我看过一些与此有关的帖子,但似乎无法让它发挥作用。通过重定向,我得到'资源无法找到错误'。
我正在尝试重定向到“详细信息”页面。元素中有一个ID,我将其存储为NestId,我希望最终能够传递给View。现在我只想重定向到详细信息页面,没有模型或附加任何东西。我只是希望NestId能够在那里使用它,以便我可以使用它来进行更多的AJAX调用。
这是我的jQuery:
$('#results').on('click', '.item', function () {
var NestId = $(this).data('id');
var url = '@Url.Action("Details, Artists")';
window.location.href = url;
})
以下是Controller上的功能:
public ActionResult Details(string NestId)
{
ViewBag.NestId = NestId;
return View();
}
我不确定我是否会以正确的方式解决这个问题,但是我会对此表示感谢,我已暂停了一段时间。谢谢!
答案 0 :(得分:24)
如果您的点击处理程序被成功调用,那么这应该有效:
$('#results').on('click', '.item', function () {
var NestId = $(this).data('id');
var url = "/Artists/Details?NestId=" + NestId;
window.location.href = url;
})
编辑:在这个特殊情况下,假设action方法参数是一个 nullable 的字符串,那么如果是NestId == null
,则不会导致任何异常,因为ModelBinder不会抱怨它。
答案 1 :(得分:3)
我曾经这样做过
在视图
内
<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" })))';
javascript 文件
var url = _addInvoiceUrl.replace('_transactionIds_', warehouseTransactionIds).replace('_payeeId_', payeeId);
window.location.href = url;
通过这种方式,我可以按需传递参数值。
使用@ Html.Raw,url不会获得 amp; 参数
答案 2 :(得分:0)
我相信这也有用:
$('#results').on('click', '.item', function () {
var NestId = $(this).data('id');
var url = '@Html.Raw(Url.Action("Artists", new { NestId = @NestId }))';
window.location.href = url;
})
答案 3 :(得分:-1)
使用查询字符串重定向
$('#results').on('click', '.item', function () {
var NestId = $(this).data('id');
// var url = '@Url.Action("Details", "Artists",new { NestId = '+NestId+' })';
var url = '@ Url.Content("~/Artists/Details?NestId =' + NestId + '")'
window.location.href = url;
})