如何从jQuery AJAX调用WebMatrix Helper函数?

时间:2012-07-13 10:59:12

标签: c# javascript jquery asp.net webmatrix

我的App_Code文件夹中有一个帮助方法,它返回一些要在页面上显示的html。我如何执行jQuery / AJAX请求来调用该方法(将int作为参数传递)并返回HTML以便我可以在页面上显示它?

我一直在寻找各地,完全不知道从哪里开始。我会感激任何帮助。

2 个答案:

答案 0 :(得分:2)

添加另一个使用Helper呈现HTML的页面,并通过AJAX调用提供值。例如,您可能有一个名为RenderHelper.cshtml的页面:

@{
    var i = Request["id"].AsInt();
}

@Helpers.MyMethod(i)

然后在您的调用页面中,使用jQuery加载函数:

$('#elementToFill').load('RenderHelper/?id=' + some_int);

答案 1 :(得分:1)

您可以使用网络服务。

在Web服务中调用类方法,并使用jQuery / Ajax调用Web服务。

例如。

类文件

Class MyClass
{
public static string GetName(string Name)
{
return "My name is "+Name;
}
}

网络服务

[WebService(Namespace = "WebService")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    [System.Web.Script.Services.ScriptService]
    public class YourNameIs : System.Web.Services.WebService
    {
        [WebMethod, ScriptMethod]
        public string GetName(string Name)
        {
            return MyClass.GetName(Name);
        }

    }

<强>的jQuery

$.ajax(
    {
        Type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "WebService.asmx/GetName",
        data: '{Name: "' + name + '"}',
        success: function (msg) {
            alert(msg.d); //set msg to any div elemts InnerHTML like $("#yourDivElement").html(msg.d);
        }
    });

我没有测试过代码,希望它会给出一个想法。