我在ASP MVC& amp; C#,以及我尝试做的事情类似于以下内容。
public JsonResult SendMessage(SMSTestViewModel model)
{
if (//logic here)
{
string phonenumber = model.phone.ToString();
string derp = string.Empty;
//SMS.SendSMS(phonenumber, "testing heheheheh", derp);
var result = new { Success = "True", Message = "Good Job" };
return Json(result, JsonRequestBehavior.AllowGet);
}
var result = new { Success = "False", Message = "Didn't work" };
return Json(result, JsonRequestBehavior.AllowGet);
}
这是我控制器中的代码块,现在我试图在我的视图中使用以下内容引用它
<p>Please enter your phone number</p>
<table>
<tr>
<td>Phone Number</td>
<td> <input id = "phone" type ="text" name= "phone" /></td>
</tr>
</table>
<input type="button" value="Submit" id="sendMSG">
<script>
$('sendMSG').click(function(){
$.getJSON('SMSTestController/SendMessage', function (data) {
alert(data.Success);
alert(data.Message);
});
});
</script>
出于某种原因警报不会出现。这对我来说很困惑。 我是JSON,JQuery和Javascript的新手,所以任何帮助或建议都会非常感激。
由于
编辑:
将html代码块更改为以下内容:
<input type="button" value="Submit" id="sendMSG">
<script>
$('#sendMSG').click(function () {
$.getJSON('@Url.Action("SendMessage","SMSTestController")', function (data) {
alert(data.Success);
alert("test");
alert(data.Message);
});
});
</script>
答案 0 :(得分:2)
最有可能的是,$.getJSON
来电中的网址不正确。相对于您当前正在查看的任何网址,您都拥有它。
尝试将该行更改为:
$.getJSON('@Url.Action("SendMessage", "SMSTestController")', function (data) {
这样,MVC会为您的操作生成一个绝对URL。
修改强>
你的按钮的jQuery选择器是错误的。
$('sendMSG')
由于您是通过ID搜索它,请使用:
$('#sendMSG')
答案 1 :(得分:1)
将网址更改为以下内容应该可以正常工作
'/SMSTestController/SendMessage'
然而,更好的解决方案是马特提到的
'@Url.Action("SendMessage", "SMSTestController")'
另外,请看一下这个小提琴http://jsfiddle.net/Ukuyc/