繁体   English   中英

将参数传递给Url.Action

[英]Pass a parameter to Url.Action

这是我的javascript函数:

function addMarker(x, y, meas_type, meas_status, meas_key) {
            var location = new google.maps.LatLng(x, y);
            var contentString = '<h3 >' + meas_type + '</h3>' + '<p>Status: ' + '<span style="color: red">' + meas_status + '</span>' + '</p>' + '<input type="button" class="btn btn-default" value="Details" onclick="window.location.href=\'@Url.Action("Index", "Home", new { param = meas_key})\';" />' + '&nbsp;';
            var marker = new google.maps.Marker({
                position: location,
                map: map,
            });
            var infowindow = new google.maps.InfoWindow({
                        content: contentString
            });
            google.maps.event.addListener(marker, 'click', function () {
                        infowindow.open(map, marker);
                    });
        }

现在在contentString变量中,我想将Index方法meas_key传递为参数! 我该怎么做? 它不是这样工作的。

这一个工作正常,但我需要发送meas_key作为参数:

var contentString = '<h3 >' + meas_type + '</h3>' + '<p>Status: ' + '<span style="color: red">' + meas_status + '</span>' + '</p>' + '<input type="button" class="btn btn-default" value="Details" onclick="window.location.href=\'@Url.Action("Index", "Home")\';" />' + '&nbsp;';

这里的问题是@Url.Action是在服务器端完成的,当然没有办法在其中传递javascript变量。 因此,您可能需要执行以下操作:

var url = '@Url.Action("Index", "Home")' + '?param=' + meas_type;
var contentString =
    '<h3 >' + meas_type + '</h3>'
    + '<p>Status: ' + '<span style="color: red">' + meas_status + '</span>' + '</p>'
    + '<input type="button" class="btn btn-default" value="Details" onclick="window.location.href=' + url + '" />'
    + '&nbsp;';

您可能需要考虑使用某种模板来使此HTML结构更具可读性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM