5

Without using a WebBrowser control, how could I execute a JavaScript function, that is decoupled from any browser DOM dependencies, in a C# application? I am investigating implementing validation rules only once, for both server and client validation. See this question for reference if you like. Are there any JS interpretor libraries I could use?

Addendum: My goal here is to automatically deploy and invoke exactly the same validation logic on client and server, without communication between the two during the actual validation. So, ideally I would code my validation logic in JavaScript, and render that to the page. Alternatively, I could code my logic in C#, convert that to JavaScript using Script#, and render that to the page.

I don't want separate validation functions being maintained client and server side, and I don't want AJAX calls to server validation functions, and I don't want client only or server only validation.

Community
  • 1
  • 1
ProfK
  • 49,207
  • 121
  • 399
  • 775

3 Answers3

2

You could use JScript.Net

Either that, or investigate Script#

kͩeͣmͮpͥ ͩ
  • 7,783
  • 26
  • 40
  • Thanks, JScript.Net is not quite what UI want, but see my mod to the question regarding Script#. – ProfK Nov 06 '08 at 12:06
2

This may help A script host for C#/VB.NET/JScript.NET it uses built in classes within the Framework to execute script in VB, C# or JavaScript.

It uses the CodeDomProvider to execute the scripts, also check out this article for a more complex example.

Kieron
  • 26,748
  • 16
  • 78
  • 122
0

Windows Script Host (WSH) is a Windows administration tool. You can use PInvoke to activate it from C#. Recognizes an MS specific (and old) version of JavaScript.

WSH creates an environment for hosting scripts. That is, when a script arrives at your computer, WSH plays the part of the host — it makes objects and services available for the script and provides a set of guidelines within which the script is executed. Among other things, Windows Script Host manages security and invokes the appropriate script engine.

gimel
  • 83,368
  • 10
  • 76
  • 104