MVC使用参数从jQuery重定向到View

我看过一些与此相关的post,但似乎无法让它发挥作用。 通过重定向,我得到’资源无法找到错误’。

我正在尝试重定向到详细信息页面。 元素中有一个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上的function:

 public ActionResult Details(string NestId) { ViewBag.NestId = NestId; return View(); } 

我不确定我是否会以正确的方式解决这个问题,但是我会感激不尽,我已经暂停了一段时间。 谢谢!

如果成功调用了click处理程序,那么这应该有效:

 $('#results').on('click', '.item', function () { var NestId = $(this).data('id'); var url = "/Artists/Details?NestId=" + NestId; window.location.href = url; }) 

编辑:在这种特殊情况下,假设action方法参数是一个可以为的字符串,那么如果NestId == null ,则不会导致任何exception,因为ModelBinder不会抱怨它。

我曾经这样做过

内部视图

  

javascript文件上

 var url = _addInvoiceUrl.replace('_transactionIds_', warehouseTransactionIds).replace('_payeeId_', payeeId); window.location.href = url; 

通过这种方式,我可以按需传递参数值。

通过使用@ Html.Raw,url将无法获得放大器; 参数

我相信这也有用:

 $('#results').on('click', '.item', function () { var NestId = $(this).data('id'); var url = '@Html.Raw(Url.Action("Artists", new { NestId = @NestId }))'; window.location.href = url; }) 

使用查询字符串重定向

  $('#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; })