给一个JavaScript变量赋值一个Razor函数
Assign a Razor Function to a JavaScript Variable?
我有一个JavaScript函数,我想在其中调用Razor C# Function
,我知道这在HTML中很容易,但在JavaScript中我得到了许多编译错误,我尝试了<text> tag
技巧,但没有任何作用。
getHTML是我的JavaScript函数,getPageSource是一个c#函数,返回一个字符串:
<script language="javascript" type="text/javascript">
function getHTML() {
var html = "@getPageSource("http://www.google.com")" ;
alert(html);
}
</script>
其中@getPageSource
定义在html之上,并且在html代码中工作良好
是否有办法分配一些剃刀代码到一个JavaScript变量
不能在客户端执行服务器端功能。Razor仅用于在服务器端生成要返回的HTML代码时提供一些逻辑。
如果这是一个返回字符串的c#函数,你应该把它用引号括起来,否则当浏览器解析你的响应时,它不会被解释为Javascript字符串。
var html = '@getPageSource("http://www.google.com")';
请记住,如果你的getPageSource("http://www.google.com")返回一个带引号的字符串,javascript将不一致,无法创建你的JS字符串。假设您的方法返回<div> ' hello ' </div>
。结果会像这样:
var html = '<div> ' hello ' </div>';
看到问题了吗?
查看这个将HTML c#字符串转换成可以用作JS字符串的字符串。http://codeasp.net/blogs/raghav_khunger/microsoft-net/722/how-to-escape-single-quotes-in-c-so-that-the-string-can-be-used-in-javascript
必须用'''
替换每个'
。请记住,字符串将完全传递给HTML代码。假设您的代码返回"It's blue"
。当在HTML中写入时,它将以var str = 'It's blue'
结尾(注意,"s blue"
将被视为字符串之外,并将由浏览器给出解析错误)。要在JS中编写,你需要像var str = 'It''s blue'
这样的东西,这样浏览器就会知道引号不是结束字符串引号,但它包含在字符串中。要在c#中包含破折号,一旦用'''
代替'
,返回的字符串必须是"It'''s blue"
getPageSource()
是JavaScript函数还是c#函数?
如果是JavaScript,你不需要前缀@
。如果是c#,那就加引号:
var html = '@getPageSource("http://www.google.com")';
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- jQuery:循环一个具有不同超时值的循环
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 从javascript创建一个列表
- 节点导出返回一个空对象
- 使用clickToggle并在单击另一个元素时关闭元素
- 我可以在json对象中添加一个函数吗
- MVC Razor,包括来自另一个项目的JS/CSS文件
- 在表单提交后,无法使用 mvc razor 中的 ajax 从其中的另一个分部视图刷新分部视图
- 如何在ajax append函数中传递一个变量(使用razor将其传递到html元素中)
- 是否可以将Razor文件中的Model扩展到一个单独的Javascript文件中
- Razor@Url.Action返回一个javascript变量,并带有可选的id参数
- 在Razor html中使用button和JS改变一个值
- 如何在.MVC 3 Razor中只触发一个JavaScript函数,而不需要控制器处理请求
- 如何使用一个全局变量,这是可见的HTML/Razor和javascript都在同一个页面上
- 视图,控制器,模型和Ajax,对于构建一个需要自动更新的工具有什么建议吗?(ASP.. NET MVC Razor)
- 使用razor构建一个弹出式工具提示菜单
- 试图从Razor传递一个变量给Jquery
- 使用jquery/ c# Razor打开一个具有相同会话的新窗口
- 给一个JavaScript变量赋值一个Razor函数