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

mrs*_*nce 12 javascript asp.net-mvc jquery url-redirection

我看过一些与此有关的帖子,但似乎无法让它发挥作用.通过重定向,我得到'资源无法找到错误'.

我正在尝试重定向到详细信息页面.元素中有一个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; 
        })
Run Code Online (Sandbox Code Playgroud)

这是Controller上的功能:

public ActionResult Details(string NestId)
    {
        ViewBag.NestId = NestId; 
        return View();
    }
Run Code Online (Sandbox Code Playgroud)

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

Dan*_*rin 26

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

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

编辑:在这种特殊情况下考虑到操作方法参数是一个字符串,它是可为空,那么如果NestId == null,不会造成任何例外可言,因为该模型绑定器不会抱怨.

  • 您可以将其替换为:@ Url.Action("详细信息","艺术家",新的{NestId ='+ NestId +'})',如@ABs所示.另外,请考虑接受帮助您帮助他人的答案. (2认同)

Saj*_*han 5

我曾经这样做过

内景

<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" })))';
Run Code Online (Sandbox Code Playgroud)

在JavaScript文件上

var url = _addInvoiceUrl.replace('_transactionIds_', warehouseTransactionIds).replace('_payeeId_', payeeId);
        window.location.href = url;
Run Code Online (Sandbox Code Playgroud)

这样我就可以按需传递参数值。

通过使用@Html.Raw,url将不会得到amp; 对于参数