admin管理员组

文章数量:1302968

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 es 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.

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 es 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.

Share Improve this question asked Feb 5, 2014 at 3:38 mrshickadancemrshickadance 1,2514 gold badges20 silver badges34 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 5

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

本文标签: javascriptPass parameter with windowlocationhref to MVC ActionResultStack Overflow