C# 简单Web API计算器帮助
我正在ASP.Net上做一个类,我需要制作一个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 {
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();