我正在使用模型视图/控制器,所以我试图将文件保存在不同的文件夹中
我试图在像这样的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所以我很乐意接受任何建议
答案 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()动作