Url.Action
will include the current route values if you don't specify them.
Try this instead
@Url.Action("Product", "Product", new { id = UrlParameter.Optional })/" + id;
Or you could set the id
to null in the Url.Action
call to clear it and then append the id to the end.