首先,是否可以使用ajax将数据发布到.netcore 2.0页面?
其次,Razor页面(.Netcore 2.0)是否取代了MVC方法?替代方法?
$('#sum').click(function () {
$.ajax({
type: 'POST',
url: '/Manifest/Sum/3/5',
success: function (result) {
alert("Succes y'all");
}
});
});
public class IndexModel : PageModel
{
private readonly CloudSolution.Models.DomainData.ManifestContext _context;
public IndexModel(CloudSolution.Models.DomainData.ManifestContext context)
{
_context = context;
}
public IList<ManifestViewModel> ManifestViewModel { get;set; }
public IActionResult HelloAjax()
{
return Content("Hello from the controller!", "text/plain");
}
[HttpPost, Route("/Manifest/Sum/{firstNumber}/{secondNumber}")]
public IActionResult Sum(int firstNumber, int secondNumber)
{
return Content((firstNumber + secondNumber).ToString(), "text/plain");
}
public async Task OnGetAsync()
{
ManifestViewModel = await _context.ManifestViewModel.ToListAsync();
}
}
答案 0 :(得分:2)
首先,这里有多个选项:
在Razor页面中使用处理程序,请参阅文档: https://docs.microsoft.com/en-us/aspnet/core/mvc/razor-pages/?tabs=visual-studio#multiple-handlers-per-page
或使用MVC模式进行Ajax(ish)类型的调用并配置中间件以使所有Controller结果在“Pages”文件夹而不是“Views”文件夹中查找,这样您就可以将所有.cshtml保存在一起。
或使用其他Javascript框架来处理更复杂的页面。
其次,Razor Pages(MVVM)不是替代品。您可以选择使用其中之一,甚至两者一起使用。
总而言之,我认为页面处理程序是最有趣的尝试, 看一下这篇文章,特别是标题为“通过处理程序使用多个GET或POST操作”的部分: https://stackify.com/asp-net-razor-pages-vs-mvc/
答案 1 :(得分:1)
2个选择。
1)尝试添加Api控制器。超级容易。 2)尝试使用页面处理程序示例OnPostAjax(),你的链接将类似于索引/?handler = ajax