Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 简单Web API计算器帮助_C#_Jquery_Asp.net Mvc_Asp.net Web Api_Asp.net Ajax - Fatal编程技术网

C# 简单Web API计算器帮助

C# 简单Web API计算器帮助,c#,jquery,asp.net-mvc,asp.net-web-api,asp.net-ajax,C#,Jquery,Asp.net Mvc,Asp.net Web Api,Asp.net Ajax,我正在ASP.Net上做一个类,我需要制作一个Web Api来进行计算。我可以让它为加法工作,但当我尝试执行其他功能时,我无法让它们工作。我肯定我遗漏了一些简单的东西,但我不知道。有人能给我一些帮助吗 型号: using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace WebAPICalc.Models { public class Calc {

我正在ASP.Net上做一个类,我需要制作一个Web Api来进行计算。我可以让它为加法工作,但当我尝试执行其他功能时,我无法让它们工作。我肯定我遗漏了一些简单的东西,但我不知道。有人能给我一些帮助吗

型号:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace WebAPICalc.Models
{
    public class Calc
    {
        public float Add(float fn, float sn)
        { return (sn + fn); }

        public float Sub(float fn, float sn)
        { return (sn - fn); }
    }
}
控制器:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using WebAPICalc.Models;

namespace WebAPICalc.Controllers
{
    public class CalcController : ApiController
    {
        Calc oCalc = new Calc();

        [Route("api/calc/add/{paramOne}/{paramTwo}")]

        public float Get(float paramOne, float paramTwo)
        {
             return oCalc.Add(paramOne, paramTwo);

        }
        [Route("api/calc/sub/{paramOne}/{paramTwo}")]
         public IHttpActionResult GetSub(float paramOne, float paramTwo)
         {
             return Ok(oCalc.Sub(paramOne, paramTwo));
         }

         }
     }
视图:

Mycalc
函数add(){
警报(“此处为api/calc/add/”+fn.value+“/”+sn.value)
$.ajax({
url:“api/calc/add/”+fn.value+“/”+sn.value,
//url:“api/calc/add/5/7”,
cache:false,
成功:函数(html){
警报(html)
tn.value=html
},
错误:函数(xhr、ajaxOptions、thrownError){
警报(xhr.状态);
警报(thrownError);
}
});
}
函数子(){
警报(“此处为api/calc/sub/”+fn.value+“/”+sn.value)
$.ajax({
url:“api/calc/sub/”+fn.value+“/”+sn.value,
//url:“api/calc/sub/5/7”,
cache:false,
成功:函数(html){
警报(html)
tn.value=html
},
错误:函数(xhr、ajaxOptions、thrownError){
警报(xhr.状态);
警报(thrownError);
}
});
}

确保你没有忘记这一行

 config.MapHttpAttributeRoutes();
在WebApiConfig文件中


我怀疑ur api看不到属性路由,只是响应默认路由和当前正在执行添加操作的默认get操作,您还可以对添加操作进行注释,并检查将发生什么,以确认

Web API和API控制器几乎不注意控制器中操作的名称。因此Get和GetSub这两个操作基本相同,因为参数列表相同,返回值也基本相同。因此,Get本身可以工作,但当您和GetSub一起工作时,它会崩溃

我的建议是,对于简单的二进制运算符,只需向控制器中的“Get”发送一个字符串,如“2+4”或“19*5.67”。并在控制器中创建一个名为Evaluate的私有助手函数来计算这些参数 通过检查和查找数字是加、减、乘还是除,然后完成计算并将结果返回到“Get”操作,该操作将把结果发送给您的客户

对于更复杂的表达式,您需要创建一个“表达式解析器”,它可以处理更复杂的表达式并计算它们的值。这是一个巨大的挑战


希望这有帮助。

我不能让他们工作
这是什么意思?你面临什么问题?如果我加上减法,两个按钮的返回值都会出现404错误。如果我只是做加法,它就工作了,我得到的结果没有404。因此,我不确定在脚本中添加要调用的减法按钮和函数后的区别是什么,我希望是这样,但这似乎是在WebApiConfig文件中。谢谢你!好主意!
 config.MapHttpAttributeRoutes();