我正处于学习阶段,我正在使用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);
}
});
}**
答案 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);
}
});