我可以在MVC控制器中使用此方法吗?我如何从ajax中调用它? [WebMethod] [脚本方法(UseHttpGet=true)] 公共静态对象Get受益者帐户() { CLSBeneficients obj=新的CLSBeneficients(); var List=新列表(); List=obj.getAll受益者帐户(); var result=List.Select(a=>new { 账户ID=a.账户ID, Name=a.Name, }); 返回结果; }

我可以在MVC控制器中使用此方法吗?我如何从ajax中调用它? [WebMethod] [脚本方法(UseHttpGet=true)] 公共静态对象Get受益者帐户() { CLSBeneficients obj=新的CLSBeneficients(); var List=新列表(); List=obj.getAll受益者帐户(); var result=List.Select(a=>new { 账户ID=a.账户ID, Name=a.Name, }); 返回结果; },ajax,asp.net-mvc,ado.net,Ajax,Asp.net Mvc,Ado.net,我是mvc新手。我在asp应用程序中使用了这种方法,但现在我想学习asp mvc 所以,任何人都可以帮助我,我可以在控制器中使用script方法,以及我如何从Ajax调用这个方法吗?您可以使用JsonResult来实现这一点 [WebMethod] [ScriptMethod(UseHttpGet = true)] public static object GetBeneficiaryAccount() { ClsBeneficiaries obj = new ClsBeneficiar

我是mvc新手。我在asp应用程序中使用了这种方法,但现在我想学习asp mvc


所以,任何人都可以帮助我,我可以在控制器中使用script方法,以及我如何从Ajax调用这个方法吗?

您可以使用JsonResult来实现这一点

[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public static object GetBeneficiaryAccount()
{
    ClsBeneficiaries obj = new ClsBeneficiaries();
    var List = new List<ClsBeneficiaries>();
    List = obj.GetAllBeneficiariesAccout();
    var result = List.Select(a => new
    {
        Account_ID = a.Account_ID,
        Name = a.Name,
    });
    return result;
}
[HttpGet]
public JsonResult get受益人账户()
{ 
CLSBeneficients obj=新的CLSBeneficients();
var List=新列表();
List=obj.getAll受益者帐户();
var result=List.Select(a=>new
{
账户ID=a.账户ID,
Name=a.Name,
});
返回Json(结果,JsonRequestBehavior.AllowGet);
}
Asp.Net Asmx解决方案 为此,您需要从添加新项目菜单创建一个
.asmx
文件
据我所知,您在mvc项目中调用asp.net asmx web服务是为了向后比较。因此,如果您真的需要从asp.net mvc项目中调用
.asmx
web服务,那么这里就是您要做的步骤
首先将路线条目添加到您的应用程序\u Start->RouteConfig.cs文件中

[HttpGet]
public JsonResult GetBeneficiaryAccount()
{ 
    ClsBeneficiaries obj = new ClsBeneficiaries();
    var List = new List<ClsBeneficiaries>();
    List = obj.GetAllBeneficiariesAccout();
    var result = List.Select(a => new
    {
        Account_ID = a.Account_ID,
        Name = a.Name,
    });

    return Json(result, JsonRequestBehavior.AllowGet);
}
这将发送到asp.net mvc中的路由引擎到以
.asmx
结尾的ignor路径。
接下来,转到web.config文件并在
System.web

routes.IgnoreRoute("{resource}.asmx/{*pathInfo}");
现在,您可以像常规的Ajax调用一样使用jQuery对其进行测试,它应该可以工作

        [WebMethod]
        [ScriptMethod(UseHttpGet = true)]
        public string HelloWorld()
        {
            return "Hello World";
        }
现在,只需使用jQuery调用它

[HttpGet]
    public JsonResult GetBeneficiaryAccount()
    {
        ClsBeneficiaries obj = new ClsBeneficiaries();
        var List = new List<ClsBeneficiaries>();
        List = obj.GetAllBeneficiariesAccout();
        var result = List.Select(a => new
        {
            Account_ID = a.Account_ID,
            Name = a.Name,
        });

        return Json(result, JsonRequestBehavior.AllowGet);
    }

$(函数(){
$.get('/YourControllerName/get受益者帐户',函数(数据){
警报(数据);
//做点什么
});
});

由于您是MVC新手,因此我建议您遵循MVC解决方案,它只返回JSON数据。

结果的值是多少?是json吗?你想返回部分视图还是json?在这种情况下,我返回json,但我想从这个结果中填充一个选择..你在使用asmx服务吗?不,我使用这个web方法是控制器
        <script>
            $(function () {
                $.get('/webservice1.asmx/HelloWorld', function (data) {
                    alert('');
                    alert(data);
                });
                alert('after');
            });
        </script>
[HttpGet]
    public JsonResult GetBeneficiaryAccount()
    {
        ClsBeneficiaries obj = new ClsBeneficiaries();
        var List = new List<ClsBeneficiaries>();
        List = obj.GetAllBeneficiariesAccout();
        var result = List.Select(a => new
        {
            Account_ID = a.Account_ID,
            Name = a.Name,
        });

        return Json(result, JsonRequestBehavior.AllowGet);
    }
<script>
        $(function () {
            $.get('/YourControllerName/GetBeneficiaryAccount', function (data) {
                alert(data);
                //do something
            });
        });
    </script>