2013-11-14 49 views
0

我想在asp.net mvc中添加兩個數字。我的代碼如下。使用json的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> 

但是當我點擊計算按鈕沒有happened.Where我錯了(對不起我的英語不好:()

+0

你的意思是 「什麼也沒發生」?控制檯中是否有錯誤信息? – Mansfield

+0

不顯示任何結果div – Zamir10

回答

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中,你引用的data Text屬性,但你沒有返回,從您的控制器

+0

感謝您的幫助。 – Zamir10

0

我發現我的wrong.May是幫助別人。

<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; } 
     } 
+0

恩,你解決了嗎? – Jedediah