如何解决JavaScriptAjax()ASP.NETMVC?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (33)

从javascript调用C#方法时遇到了问题,这是我的代码:

HTML :

function add() {
  var number1 = $('#input1').val();
  var number2 = $('#input2').val();
  $.ajax({
    type: "POST",
    url: 'Panjers/AddNumbers',
    data: JSON.stringify({
      number1: number1,
      number2: number2
    }),
    contentType: "application/json",

    success: function(result) {
      alert(result)
    },
    error: function() {
      alert('Error');
    }
  })
}
<html>
<h2>View</h2>

<body>
  <script type="text/javascript" src="../../Scripts/jquery-3.3.1.js"></script>
  <script type="text/javascript" src="../../Scripts/display.js"></script>
  <form name="form2">
    <input type="text" name="input1" value="" />
    <input type="text" name="input2" value="" />
    <input type="button" name="bouton" value="Additionner" onclick="afficher(form2)" />
    <input type="text" name="output" value="" />

    <input type="button" name="bouton3" value="Affiche" onclick="add(form2)" />
  </form>

</body>

</html>

[HttpPost]
public ActionResult AddNumbers(int number1,int number2)
{
    int result = number1 + number2;
    return Json(result,JsonRequestBehavior.AllowGet);
}
提问于
用户回答回答于

应该提到执行此代码时引发的错误,可以使用Postman检查API是否正确调用并返回响应,当你从stringify一个带有值的对象获取时inputs,会将返回的值保持在引号(“)中,从而使其类型为string,可以通过在控制台中输出即可确认这一点,即

var number1 = $('#input1').val();
var number2 = $('#input2').val();
console.log (JSON.stringify({number1: number1, number2: number2 });

为了使服务器端功能工作,从改变参数类型int,以string这样的:

[HttpPost]
public ActionResult AddNumbers(string number1,string number2)
{
    int result = int.parse(number1) + int.parse(number2);
    return Json(result,JsonRequestBehavior.AllowGet);
}

扫码关注云+社区

领取腾讯云代金券