Pass parameter with window.location.href to MVC ActionResult
asp.net-mvc, javascript, jquery
Solution
Two options. Update your route table to properly allow the route with its slug "ARE602H1187FB3B8F" to be routed to the applicable action method. Or, you could pass `id` as a query string parameter, thereby using the default route in your route table:
... Artist/Details?selectedArtist=ARE602H1187FB3B8F
Problem
I'm trying to figure out the best way to do it and have seen a lot of suggestions, but can't get anything to work quite right and would rather do it the best way first. Here's the ActionResult on the Controller: ``` public ActionResult Details(string selectedArtist) { //other code return View(selectedArtist) } ``` Here's the javascript on the client: ``` $('#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); }) ``` Ideally, I would like the pass the selectedArtist object to the controller. It's basically a javascript class that matches a Artist model I have. For now though as a test I am just trying to pass an Id as a string to the controller and can't get it to, it just always comes up as NULL. The request that it's building looks pretty good to me ".../Artist/Details/ARE602H1187FB3B8F". However, I'm debugging and the parameter on the controller always ends up NULL. Am I missing something? And/or is there a better way to do this? Thanks in advance.