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是的,这就是我的意思。