我想知道如何在MVC2中使用Ajax。我在Visual Studio中创建了一个空项目,并在Controllers / Home / HomeController.cs下添加了一个带有以下代码的家庭控制器
当单击按钮并显示该文本时,如何使用AJAX在HomeController上调用AjaxTest方法?
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult AjaxTest()
{
return Json("Whoever answers this rocks!");
}
}
我在Views / Home / Index.cs下添加了一个视图,其中包含以下代码
<script type="text/javascript">
function sayHello() {
alert("hello stackoverflow :)")
}
</script>
<div>
Hello
<button onclick="sayHello();"> Click Me! </button>
</div>
答案 0 :(得分:1)
这应该有效:
<script type="text/javascript">
function sayHello() {
$.get('/Home/AjaxTest', function(data) { alert(data) });
}
</script>
请记住在页面的head部分包含jQuery:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
您还可以在项目的scripts文件夹中包含jQuery。 jQuery是ASP.NET MVC框架文件的一部分。
编辑:
将您的操作更改为
public ActionResult AjaxTest()
{
return Json("Whoever answers this rocks!", JsonRequestBehavior.AllowGet);
}
默认情况下,使用Json和get结果“此请求已被阻止,因为在GET请求中使用此信息时,可能会向第三方网站披露敏感信息。要允许GET请求,请将JsonRequestBehavior设置为AllowGet。”错误。
答案 1 :(得分:0)
不要忘记<button>
元素默认提交表单,这可能会对您的AJAX调用造成意外影响。在<input type="button" value="Click Me" />
函数中考虑false
或返回sayHello()
。