如何将值从cshtml文件传递给JS

时间:2014-01-17 14:31:18

标签: javascript asp.net-mvc

你好我需要在按下按钮后将一个参数传递给我的JS函数。

这是我的按钮:

<button type="button" class="btn btn-default" id="UserClick" onclick="foo(@HttpContext.Current.User.Identity.Name)">Click here to add me as a user</button>

正如您所见,我尝试将@HttpContext.Current.User.Identity.Name发送到函数foo。

这是我的Foo功能:

    function foo(value) {
         alert(value);
    };

我尝试过这些主题的解决方案: One Two

但我得到的只是这个错误:

Uncaught SyntaxError: Unexpected token ILLEGAL 

如何绕过这个?

@Update

包括所有文件:

<script src="/Scripts/CreateDevice.js"></script>
<script src="/Scripts/jquery-ui.js"></script>
<script src="/Scripts/jquery-1.10.2.js"></script>

完整的JS文件:

$(document).ready(function () {

function foo(value) {
    alert(value);
};
})

我可以从page-source访问js文件。

2 个答案:

答案 0 :(得分:2)

首先将文件序列更改为

<script src="/Scripts/jquery-1.10.2.js"></script>
<script src="/Scripts/jquery-ui.js"></script>
<script src="/Scripts/CreateDevice.js"></script>

在文档就绪处理程序之外声明您的函数。像

$(document).ready(function () {
});

function foo(value) {
    alert(value);
};

将参数传递给引号

onclick="foo('@HttpContext.Current.User.Identity.Name');"

此外,您可以使用.on()绑定事件并使用属性传递参数

JS

$(document).ready(function () {
    //Bind Event
    $(document).on('click', '#UserClick', function(){
        alert($(this).data('user-name'))
    });
});

HTML

<button type="button" 
    class="btn btn-default" 
    id="UserClick" 
    data-user-name="@HttpContext.Current.User.Identity.Name"
    >Click here to add me as a user</button>

答案 1 :(得分:1)

onclick="foo('@HttpContext.Current.User.Identity.Name');"


$(document).ready(function () {

window.foo = function(value) {
    alert(value);
};
})

这将有效...

你应该考虑删除html中的'onclick'属性,然后使用jquery的.on()函数将函数绑定到按钮。