0

我想计算 asp.net mvc 中两个数字的加法。我的代码如下。

 public ActionResult Index()
    {
        return View();
    }

    public JsonResult Calculate(int a,int b)
    {
        return Json(a + b);
    }

Index.cshtml 代码如下:

 <table>
    <tr>
        <td><input type="text" id="s1"/></td>
        <td>+</td>
        <td><input type="text" id="s2"/>=</td>
        <td><div id="result"></div></td>
    </tr>
    <tr><td><input type="submit" value="Calculate" id="btnCalc"/></td></tr>
</table>
<script type="text/javascript">
    $(document).ready(function () {
        $('#btnCalc').click(function () {
            var a = $('#s1').val(),b=$('#s2').val();
            $.post("/Home/Calculate", { a: a,b:b }, function (data) {
                $('#result').text(data.Text);
            }, "json");
        });
    });
</script>

但是当我点击计算按钮时什么也没发生。我错了。(对不起我的英语不好:()

4

2 回答 2

1

在您的 javascript 中,您需要执行以下操作:

var a = $('#s1').val();
var b = $('#s2').val();

// {a: a, b: b} might work, but I can't test it right now
$.post('/home/calculate', 'a=' + a + '&b=' + b, function(data) {
    $('#result').text(data.Text);
});

在您的控制器中:

[HttpPost] //This isn't required, but it will prevent GET requests if that's what you want to do
public JsonResult(int a, int b)
{
    int result = a + b;
    return Json(new {Text = result});
}

主要问题是,在您的 javascript 中,您引用了 的 Text 属性data,但没有从控制器返回该属性

于 2013-11-14T18:13:58.283 回答
0

我发现了我的错误。可能对某人有帮助。

<table>
<tr>
    <td><input type="text" id="s1"/>+</td>
   <td><input type="text" id="s2"/>=</td>
    <td><div id="result"></div></td>
</tr>
<tr>
    <td><input type="submit" id="btn"/></td></tr>
<script type="text/javascript">
    $(document).ready(function () {
        $("#btn").click(function() {
            var a = $('#s1').val();
            var b = $("#s2").val();
            $.post("/Home/Calc", { a: a,b:b}, function (data) {
                $('#result').text(data.Text);
            }, "json");
        });});
 [HttpPost]
        public JsonResult Calc(int a,int b)
        {
            int result = a + b;
            return Json(new {Text=result});
        }

        public class Result
        {
            public string Text { get; set; }
        }
于 2013-11-14T19:12:40.730 回答