使用ASP.NET MVC中的JQuery Ajax调用在ViewData中设置结果

时间:2018-01-03 06:03:13

标签: jquery ajax asp.net-mvc

我正处于学习阶段,我正在使用MVC中的jquery和ajax开发简单的计算器,我想在viewdata [“result”]中显示结果。我怎样才能做到这一点?请指导我。

以下是代码示例。

**Model**

Models.calc c=new Models.calc(string n1,string n2);
c.num1=Convert.toInt32(n1);
c.num2=Convert.toInt32(n2);
int result=c.num1+c.num2;
viewdata["result"]=result;**

**iN AJAX , how i show this viewdata["result"] to show result in label.**

$.ajax({
  url: "@Url.Action("add", "Home")",
  data: JSON.stringify({ 'n1': number1, 'n2': number2 }),
  type: "POST",
  datatype: "JSON",
  contentType: "application/json;charset=utf-8",
  success: function (data) {
             @ViewData["Result"];
           }, 
  error: function (err) {
           console.log(err);
         }
});
}**

1 个答案:

答案 0 :(得分:2)

您的javascript ajax-request在用户浏览器的客户端运行。 你无法访问@ViewData ["结果"],因为它是一个剃刀语句,在服务器端进行解释。

您需要在控制器操作中返回结果,该操作将在您的数据变量中。 之后,你可以选择你的标签,文本框或其他元素,在你的javascript的成功" -part中设置其值或innerHtml属性。

e.g。

$.ajax({
  url: "@(Url.Action("add", "Home"))",
  data: JSON.stringify({ 'n1': number1, 'n2': number2 }),
  type: "POST",
  datatype: "JSON",
  contentType: "application/json;charset=utf-8",
  success: function (data) {
     $('#yourLabel').text(data); //<-- here, I look for a label with an ID
  }, 
  error: function (err) {
     console.log(err);
  }
});