私はasp.net-mvcでNancyフレームワークを使用しています。様々なビューの中から、私は、各コントローラモジュールのエンドポイントを複製する必要はなく、これまでに失敗しているのではなく、ajax/getJSON経由で共通のモジュールからメソッドを呼び出せるようにしたいと考えています。どのようにajaxから共通のコントローラメソッドを呼び出すのですか?
は私のコントローラモジュールは、次のようになりますと仮定します。
function callMethod()
{
var someargument = $('#SomeControl').data('somedata');
var url = window.location.protocol + '/' + window.location.host + '/CommonModule/EndpointName/' + someargument;
$.getJSON(url, function (json) {
//process if/as required;
})
.done(function (info) {
//process if/as required;
})
.fail(function (jqxhr, textStatus, error) {
//process if/as required;
});
}
これが可能である:私のjsファイル内の
namespace SomeNamespace
{
using Microsoft.EntityFrameworkCore;
using Models;
using Nancy;
public class CommonModule : NancyModule
{
public CommonModule(IAppRepository repo)
{
Get("/EndpointName/{someargument}", async (x, ct) =>
{
string result = string.Empty;
int someargument;
if(int.TryParse(x.apptype, out someargument))
{
var data = await repo.SomeModel.AsNoTracking().ToListAsync().ConfigureAwait(false);
result = Response.AsJson(data);
}
return result;
});
}
}
}
、私のようなものを持っているだろうか?もしそうなら、これはどのように行われますか?私はちょうど間違ってURLを構築していますか、それは正しい参照が.cshtmlファイルに存在することを保証することと関係していますか?
$('#CommonModulebtn').click(function() {
$.ajax({
url: '/CommonModule/CommonModule',
type: "GET",
dataType: "JSON",
data: { IAppRepository : $('#SomeControl').data('somedata').val() },
success: function (info) {}