2017-04-10 75 views
0

我在ASP.NET MVC5應用程序中編寫了以下控制器函數,以使用R函數sum()返回2個用戶定義輸入的總和。這個編譯成功,但沒有給出任何輸出。 由於ajax函數失敗,它給了500(內部服務器錯誤)。RDotNet函數添加兩個用戶定義的輸入給出錯

任何人都可以告訴我我在哪裏犯錯嗎?

public JsonResult Sum(int? Text1,int? Text2) 
{ 
    REngine.SetEnvironmentVariables(); // 
    REngine engine = REngine.GetInstance(); 

    return Json(engine.Evaluate("function(Text1,Text2) 
    {sum(Text1,Text2)}").AsFunction(), JsonRequestBehavior.AllowGet); 
} 
+0

您還需要發佈什麼錯誤。 –

+0

我自己解決了這個問題。控制器函數的正確代碼片段如下: var mySum = engine.Evaluate(「function(x,y){return (x + y)}」)。AsFunction(); var v = engine.CreateInteger(Text1); var u = engine.CreateInteger(Text2); var sum1 = mySum.Invoke(new SymbolicExpression [] {u,v})。AsInteger(); return Json(sum1,JsonRequestBehavior.AllowGet); } –

+0

太棒了!很高興知道你解決了這個問題。 –

回答

0

我自己解決了這個問題。對於控制器功能正確的代碼片段如下:

var mySum = engine.Evaluate("function(x,y){return (x+y)}").AsFunction(); 
var v = engine.CreateInteger(Text1); 
var u = engine.CreateInteger(Text2); 
var sum1 = mySum.Invoke(new SymbolicExpression[] { u, v }).AsInteger();  
return Json(sum1, JsonRequestBehavior.AllowGet); } 

既然你們中許多人傳遞消息我,請求我爲rdotnet應用示例代碼,我已經出版瞭解釋的示例代碼在我的博客: wordpress.com/post/pheonix116s.wordpress.com/169

我希望你們都會覺得它有用。