在mvc4中为全局变量赋值

时间:2014-06-04 08:08:24

标签: jquery asp.net-mvc-4

我在.cshtml视图中使用全局变量,如下所示 -

@{
string canvasimage="";
}

我希望使用jquery -

在其中添加一些值
<script>
    function GetData() {
        var image = $('#canvasoverdues canvas');
        var src = image[0].toDataURL("image/png");
        src = src.replace('data:image/png;base64,', '');
        @canvasimage=src;
    };
</script>

然后想在锚标记中使用这个全局变量,如下所示 -

<a href="/PDF/Certificate/?filename="+@canvasimage+" id="canvasbutton" >convert to image</a>

但是在脚本中使用此全局变量时出现语法错误。

我的问题是我们如何使用这个全局变量并为其赋值。

如果无法做到这一点,请告诉我如何将函数GetData()的值发送到锚中名为filename的参数中?

2 个答案:

答案 0 :(得分:0)

您不能在 javascript 代码中使用 c#变量,因为javascript是客户端而c#是服务器端代码,您必须设置 href 通过jquery这样的锚标签:

<script>
    function GetData() {
        var image = $('#canvasoverdues canvas');
        var src = image[0].toDataURL("image/png");
        src = src.replace('data:image/png;base64,', '');
        $("#canvasbutton").attr("href","/PDF/Certificate/?filename="+src);
    };
</script>

如果您的HTML是这样的:

<a href="/PDF/Certificate/?filename=" id="canvasbutton" >convert to image</a>

然后:

<script>
        function GetData() {
            var image = $('#canvasoverdues canvas');
            var src = image[0].toDataURL("image/png");
            src = src.replace('data:image/png;base64,', '');
            var temp = $("#canvasbutton").attr("href") + src;
            $("#canvasbutton").attr("href",temp);
        };
    </script>

答案 1 :(得分:0)

您可以在GetData()方法中访问该锚元素。

function GetData() {
    var image = $('#canvasoverdues canvas');
    var src = image[0].toDataURL("image/png");
    src = src.replace('data:image/png;base64,', '');
    $("#anchorID").attr("href", $("#anchorID").attr("href") + "?filename=" + src);
}