【发布时间】:2018-09-28 08:13:51
【问题描述】:
在 stackoverflow 上浏览 3 小时后,我没有找到解决问题的方法。 所以我怀疑我的项目中有些东西很特别。
我在 Visual Studios 2017 上有一个 ASP.NET Core (2.0) WebApplications 项目。我尝试从我的 Kalender.cshtml 文件中进行 ajax 调用:
return $.ajax({
type: 'GET',
url: myurl,
data: '{}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) { //REQUEST SUCCESS
alert(result);
},
与我的网址:
var myurl = '@Url.Action("EventsRead","Kalender")';
但我知道 alert(myurl) 返回一个空字符串。所以ajax调用一定会失败。我猜网址应该是这样的:
/Kalender/EventsRead
但是如果我使用这个,ajax 返回 404 Not found.
我的 Kalender.cshtml.cs 动作如下:
[HttpGet]
public IActionResult EventsRead()
{
//DATABASE READOUT
var events = DataBase.Events.ToList();
return new JsonResult(events);
}
PageModel 的类如下所示:
public class KalenderModel : PageModel
这是自动生成的所有内容。我尝试了大约 100 个不同的版本,但从未在 EventsRead() 操作中设置断点。
侧面信息:
在我的 Startup.cs 中,我禁止使用 AntiforgeryToken:
services.AddMvc().AddRazorPagesOptions(options =>
{
options.Conventions.ConfigureFilter(new IgnoreAntiforgeryTokenAttribute());
});
在我发疯之前我真的需要一些帮助,感谢任何回应。 马丁
【问题讨论】:
标签: javascript asp.net ajax razor url.action