RDotNet函数添加两个用户定义的输入,给出错误

时间:2017-04-10 09:44:07

标签: asp.net r ajax asp.net-mvc r.net

我在ASP.NET MVC5应用程序中编写了以下控制器函数,以使用R函数sum()返回2个用户定义输入的总和。这成功编译但不提供任何输出。 由于ajax功能失败,它给出了500(内部服务器错误)。

任何人都可以告诉我我在哪里弄错了吗?

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);
}

1 个答案:

答案 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

我希望你们都觉得它很有用。