$ .ajax with view无效

时间:2013-01-05 21:07:15

标签: asp.net-mvc-3

我是ASP.NET MVC的新手。我想通过$.ajax调用一个控制器的方法,该方法不是视图中的操作方法,但我在浏览器控制台中收到错误。我想问一下,通过ajax调用一个不是动作方法的方法是不可能的。

视图代码

@{
    ViewBag.Title = "About Us";
}
<script type="text/javascript">

    function ajaxcall() {
        $.ajax({
            url: '/Home/ValidatePin',
            type: 'Post',
            success: function (result) {
                alert(result.d);
            }
        })
    }
</script>
<h2>About</h2>
<p>
    Put content here.

    <input type="button" onclick="ajaxcall()"  value="clickme" />
</p>

这是方法

的代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Services;
namespace MvcApplication1.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            ViewBag.Message = "Welcome to ASP.NET MVC!";

            return View();
        }

        public ActionResult About()
        {
            return View();
        }

        [WebMethod]
        public static string ValidatePin()
        {
            return "returned from controller class";
        }
    }
}

1 个答案:

答案 0 :(得分:0)

控制器的所有公共方法都是操作,除非标有NonAction属性。

[WebMethod]属性来自ASP.NET Web服务(非MVC),并且对MVC控制器没有影响。

您的ValidatePin方法未被调用,因为它是静态的。动作方法必须是实例方法。