Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用window.location.href将参数传递给MVC ActionResult_Javascript_Jquery_Asp.net Mvc - Fatal编程技术网

Javascript 使用window.location.href将参数传递给MVC ActionResult

Javascript 使用window.location.href将参数传递给MVC ActionResult,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,我正试图找出最好的方法来做这件事,并且已经看到了很多建议,但是我不能让任何事情都很好地工作,我宁愿先用最好的方法来做 以下是控制器上的操作结果: public ActionResult Details(string selectedArtist) { //other code return View(selectedArtist) } 以下是客户端上的javascript: $('#results').on('click', '.item', function () {

我正试图找出最好的方法来做这件事,并且已经看到了很多建议,但是我不能让任何事情都很好地工作,我宁愿先用最好的方法来做

以下是控制器上的操作结果:

public ActionResult Details(string selectedArtist)
{
    //other code
    return View(selectedArtist)
}
以下是客户端上的javascript:

$('#results').on('click', '.item', function () {
        var selectedArtist = $(this).data('artistInfo');
        var selectedId = encodeURIComponent('ARE602H1187FB3B8F8')
        var url = '@Url.Action("Details", "Artist", new { id = "__id__" })';
        window.location.href = url.replace('__id__', selectedId);
    })
理想情况下,我希望将selectedArtist对象传递给控制器。它基本上是一个javascript类,与我拥有的艺术家模型相匹配。目前,虽然作为一个测试,我只是试图将一个Id作为字符串传递给控制器,但无法将其传递给控制器,它总是显示为NULL

对我来说,这座建筑的要求看起来相当不错“../Artist/Details/ARE602H1187FB3B8F”。但是,我正在调试,控制器上的参数总是以NULL结尾


我错过什么了吗?和/或有没有更好的方法?提前谢谢

两种选择。更新路由表,以正确允许将带有“ARE602H1187FB3B8F”的路由路由路由到适用的操作方法。或者,您可以将
id
作为查询字符串参数传递,从而使用路由表中的默认路由:

... Artist/Details?selectedArtist=ARE602H1187FB3B8F

action方法不需要其他东西吗…
selectedArtist
?对不起,我对MVC相当陌生。当你说更新路由表时。你是说路线图吗?您将在哪里更改它处理URL的方式?i、 url:“{controller}/{action}/{id}”。?@mrshickadance是的,这就是我的意思。