如何使用ajax

时间:2017-06-30 18:59:05

标签: javascript c# jquery asp.net ajax

我正在使用模型视图/控制器,所以我试图将文件保存在不同的文件夹中 enter image description here

我试图在像这样的aspx中使用ajax从Boleta proyect调用Business文件夹中的c#类。

$.ajax({
    type: "POST",
    url: "Business/SaveExpenses.cs/save",
    data:  JSON.stringify({ questions: questions}),
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (data) {
        alert(data);
        console.log(data);
    },
    error: function (data) {
        alert("fail");
    }
});

我试图调用的c#文件看起来像这样。

namespace Business
{
    public class SaveExpenses
    {
        public string save(string foo)
        {
            string ret= "something";
            return ret;
        }
    }
}

当执行页面并通过ajax函数时,它会抛出错误404找不到。 现在我的问题是,如何浏览asp.net中的文件夹?或者调用函数的正确方法。 我来自一个PHP环境,我非常新的asp.net所以我很乐意接受任何建议

3 个答案:

答案 0 :(得分:2)

这个网址错了:

  

url:“Business / SaveExpenses.cs / save”

URL应该引用实际路线。例如:

public class BusinessController : Controller
{
    // GET
    public ActionResult Index()
    {
        return View();
    }


    public string Save()
    {
        string ret= "something";
        return ret;
    }

然后您的网址将为Business/Save(受RouteConfig等考虑因素影响)。

答案 1 :(得分:0)

调查Adding a Web API Controller。基本上,你的ajax调用将命中一个http端点,你将在那里执行你的服务器端逻辑。

以下只是一个通用模式 - 您需要实现更多plumbing才能实现此功能......

$.ajax({
  type: 'POST',
  url: '/Business/Expenses', // http route
  // [...]
});
[RoutePrefix("Business")]
public class ExpensesController : ApiController
{
    [HttpPost]
    public IHttpActionResult Save([FromBody] string questions)
    {
        // do stuff
        return Ok("something");
    }
}

答案 2 :(得分:0)

在Boleta项目中添加业务名称空间

using Business;

然后在控制器中创建一个动作进入Boleta Project

public JsonResult Save(param)
{
SaveExpenses se = new SaveExpenses();
    var result=  se.Save(param);
    return json(result);
}

并通过ajax调用save()动作