将字符串变量传递给JavaScript函数
我正在尝试将字符串值传递给button onclick事件 但是javascript函数不从变量x读取任何内容将字符串变量传递给JavaScript函数,javascript,c#,razor,Javascript,C#,Razor,我正在尝试将字符串值传递给button onclick事件 但是javascript函数不从变量x读取任何内容 <button class="btn btn-buy" onclick="myFunction(@item.ProductId.ToString())" style="@btnstyle"><h4>Add to Basket</h4></button> 添加到篮子中 如何将变量值传递给Java脚本参数 <script>
<button class="btn btn-buy" onclick="myFunction(@item.ProductId.ToString())" style="@btnstyle"><h4>Add to Basket</h4></button>
添加到篮子中
如何将变量值传递给Java脚本参数
<script>
function myFunction(x) {
alertify.prompt('Prompt Title', x, '1'
, function (evt, value)
{
}
, function () {
alertify.error('Cancel') });
}
</script>
函数myFunction(x){
alertify.prompt('prompt Title',x,'1'
,函数(evt,值)
{
}
,函数(){
alertify.error('Cancel')});
}
看起来您只需要将值放在引号中,razor会将@item.ProductId.ToString()
的值直接放在html中,但它不会放在引号中,因此当浏览器将其解释为javascript时,它会相当混乱
当您使用razor时,记住它是一个模板系统,输出一个文档,然后由浏览器解释,这是很有帮助的@item.ProductId.ToString()
只需将一些文本放入该模板中即可。Javascript无法访问该变量,除非它是通过模板提供的。出于这个原因,它需要被一些东西包围,以使javascript将其视为字符串。实际上,这意味着在它周围加上引号,如“@item.ProductId.ToString()”
例如:
函数myFunction(x){
console.log(x)
alertify.prompt('prompt Title',x',1',函数(evt,值){
},函数(){
alertify.error('Cancel')
});
}
添加到Basket
假设@item.ProductId.ToString()
您试图调用JS的ToString()方法,那么您需要使用小写的t调用.ToString
,而不是大写的t
它不应该是myFunction('@item.ProductId.ToString()')
,我指@item.ProductId.ToString()的值)
应被引用?{“消息”:“未捕获引用错误:未定义测试”,@sansalk如果我不清楚的话,很抱歉。我的观点是,如果test
不是字符串,它会抛出错误。在第一个示例中,您会注意到它是字符串,所以不会抛出。在您的代码中,razor会将文本放在@item.ProductId.ToString()的位置
,但是因为它没有引号,javascript会尝试将它解释为一个变量,这几乎肯定是未定义的Hanks,Oliver你能给我们展示一个变量传递的工作示例吗?Nop使用的是C
的ToString()
方法。我不认为这是答案。啊哈,我不应该假设。:D