只是想知道是否有人尝试嵌入并实际将任何js引擎集成到.net环境中.我可以找到并实际使用(经过很多痛苦和努力,因为它已经过时而且还没完成)spidermonkey-dotnet项目.有这方面经验的人吗?发动机如SquirrelFish,V8 ..
并不是说我对Mozilla的Spidermonkey不满意(将它用于核心ASP.NET应用程序中的自定义组件的Rails式miniframework),但我仍然喜欢进一步探索这些选项.命令行解决方案不是我需要的,我不能依赖CLR以外的任何东西,我需要从/到JavaScript/C#对象调用方法.
// c# class
public class A
{
public string Hello(string msg)
{
return msg + " whatewer";
}
}
// js snippet
var a = new A();
console.log(a.Hello('Call me')); // i have a console.log implemented, don't worry, it's not a client-side code :)
Run Code Online (Sandbox Code Playgroud)
只是为了澄清 - 我不是试图在服务器端javascript中实际编写应用程序本身.它仅用于编写自定义用户子应用程序(可以看作是某种DSL).允许普通人在js中编程比C#更容易(也更安全).
我想使用文档(字符串形式)或URL加载DOM,然后对它执行javascript函数(包括jquery选择器).这将完全是服务器端,正在进行中,没有客户端/浏览器.
基本上我需要加载dom然后使用jquery选择器和text()&type val()函数从中提取字符串.我真的不需要操纵dom.
我看过.Net javascript引擎,如Jurassic和Jint,但都不支持加载DOM,因此不能做我需要的.
我愿意考虑非.Net解决方案(node.js,ruby等),如果它们存在,但我们更喜欢.Net.
编辑 下面是一个很好的答案,但目前我正在尝试不同的路线,我试图将envjs移植到侏罗纪.如果我可以开始工作,我认为它会做我想做的事,请继续关注....
如果我尝试从我的Controller返回一些JavaScript,如下所示:
public ActionResult DoSomething()
{
return JavaScript("alert('Hello world!');");
}
Run Code Online (Sandbox Code Playgroud)
我没有在我的浏览器中查看警报消息,但是我从名为action的页面获取了.js脚本的下载请求(在我的情况下是register.js).怎么了?