Asp.net 无法访问 MVC 控制器端点
Asp.net MVC Controller endpoint not reachable
我正在尝试使用 ASP.net MVC 实现服务器端处理,但问题是当我加载我的项目时,只有我的控制器的索引端点被点击并且我指定用于加载数据的路径无法访问通过我的项目,所以我的数据中没有加载任何内容 table。
:
Sitefinity 创建的代码不包含 Route.config,所以我无法检查控制器函数的路径,但据我所知,任何控制器的路径都会变成这样“/Controlleername/functionname”
控制器:
[ControllerToolboxItem(Name = "Test", Title = "Test Page", SectionName = "MyCustom")]
public class TestController : Controller
{
// GET: Test
public ActionResult Index()
{
return View();
}
[HttpPost]
public JsonResult LoadData()// I put Breakpoint here and nothing reached
{
TestModel test = new TestModel();
test.name = "name1";
test.lastname = "lastnmae1";
test.name = "name2";
test.lastname = "lastnmae2";
return Json(test);
}
}
Index.cshtml:
@{
ViewBag.Title = "Index";
}
<div style="width:90%; margin:0 auto;">
<table id="myTable">
<thead>
<tr>
<th>name</th>
<th>lastname</th>
</tr>
</thead>
</table>
</div>
@* Load datatable css *@
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<link href="//cdn.datatables.net/1.10.23/css/jquery.dataTables.min.css" rel="stylesheet" />
@section Scripts{
@* Load DataTable js here *@
<script src="//cdn.datatables.net/1.10.23/js/jquery.dataTables.min.js"></script>
<script>
$(document).ready(function () {
$("#myTable").DataTable({
"processing": true, // for show progress bar
"serverSide": true, // for process server side
"filter": false, // this is for disable filter (search box)
"orderMulti": false, // for disable multiple column at once
"ajax": {
"url": "/Test/LoadData",
"type": "POST",
"datatype": "json"
},
"columns": [
{ "data": "name", "name": "name", "autoWidth": true },
{ "data": "lastname", "name": "lastname", "autoWidth": true },
]
});
});
</script>
}
型号:
public class TestModel
{
public string name { get; set; }
public string lastname { get; set; }
}
更新:
当我通过注释使用自定义路由时也不起作用,我认为原因与 this 有关,但问题是我正在处理 Visual studio IIS 和 localhost 我相信这是由 Sitefinity 引起的,但我不'知道如何解决它
您是否将小部件添加到具有 url /Test 的页面?
只有这样你才能期望达到 /test/loadData
我正在尝试使用 ASP.net MVC 实现服务器端处理,但问题是当我加载我的项目时,只有我的控制器的索引端点被点击并且我指定用于加载数据的路径无法访问通过我的项目,所以我的数据中没有加载任何内容 table。 : Sitefinity 创建的代码不包含 Route.config,所以我无法检查控制器函数的路径,但据我所知,任何控制器的路径都会变成这样“/Controlleername/functionname”
控制器:
[ControllerToolboxItem(Name = "Test", Title = "Test Page", SectionName = "MyCustom")]
public class TestController : Controller
{
// GET: Test
public ActionResult Index()
{
return View();
}
[HttpPost]
public JsonResult LoadData()// I put Breakpoint here and nothing reached
{
TestModel test = new TestModel();
test.name = "name1";
test.lastname = "lastnmae1";
test.name = "name2";
test.lastname = "lastnmae2";
return Json(test);
}
}
Index.cshtml:
@{
ViewBag.Title = "Index";
}
<div style="width:90%; margin:0 auto;">
<table id="myTable">
<thead>
<tr>
<th>name</th>
<th>lastname</th>
</tr>
</thead>
</table>
</div>
@* Load datatable css *@
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<link href="//cdn.datatables.net/1.10.23/css/jquery.dataTables.min.css" rel="stylesheet" />
@section Scripts{
@* Load DataTable js here *@
<script src="//cdn.datatables.net/1.10.23/js/jquery.dataTables.min.js"></script>
<script>
$(document).ready(function () {
$("#myTable").DataTable({
"processing": true, // for show progress bar
"serverSide": true, // for process server side
"filter": false, // this is for disable filter (search box)
"orderMulti": false, // for disable multiple column at once
"ajax": {
"url": "/Test/LoadData",
"type": "POST",
"datatype": "json"
},
"columns": [
{ "data": "name", "name": "name", "autoWidth": true },
{ "data": "lastname", "name": "lastname", "autoWidth": true },
]
});
});
</script>
}
型号:
public class TestModel
{
public string name { get; set; }
public string lastname { get; set; }
}
更新:
当我通过注释使用自定义路由时也不起作用,我认为原因与 this 有关,但问题是我正在处理 Visual studio IIS 和 localhost 我相信这是由 Sitefinity 引起的,但我不'知道如何解决它
您是否将小部件添加到具有 url /Test 的页面?
只有这样你才能期望达到 /test/loadData