在 ASP.NET 核心 2 中提交表单并出现错误 "Sending Data Status Code: 404; Not Found"
Submitting a form in ASP.NET Core 2 and getting an error "Sending Data Status Code: 404; Not Found"
我试过提交一个简单的 Form
但我收到了这个错误:
"Sending Data Status Code: 404; Not Found"
我用过 ASP.NET Core 2
,我是新手!
我该如何解决这个问题?
启动的一部分class:
routes.MapRoute(
name: "ForTest",
template: "{controller}/{action}/{des}",
defaults: new { controller = "Comment", action = "Test", des = "no comment!" }
);
cshtml文件的一部分:
<form method="post" asp-controller="Comment" asp-action="Test" enctype="multipart/form-data">
<div class="form-group">
<textarea id="des" class="form-control" rows="3"></textarea>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
CommentController 的一部分 class:
[Route("[controller]")]
public class CommentController : Controller
{
private readonly ApplicationDbContext _context;
public CommentController(ApplicationDbContext context)
{
_context = context;
}
[HttpPost]
[Route("Test/{des}")]
[ValidateAntiForgeryToken]
public IActionResult Test(string des)
{
return null;
}
}
我建议在 textarea
上使用 asp-for
属性并使用 ViewModel class。
另外,修复 Route
属性。
控制器/型号
public class TestViewModel
{
public string des { get; set; }
}
public class CommentController : Controller
{
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Test(TestViewModel testViewModel)
{
return Ok(testViewModel.des);
}
}
cshtml
@using @*Set proper namespace for TestViewModel*@
@model TestViewModel
<form method="post" asp-controller="Comment" asp-action="Test" enctype="multipart/form-data">
<div class="form-group">
<textarea asp-for="des" rows="3"></textarea>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
我试过提交一个简单的 Form
但我收到了这个错误:
"Sending Data Status Code: 404; Not Found"
我用过 ASP.NET Core 2
,我是新手!
我该如何解决这个问题?
启动的一部分class:
routes.MapRoute(
name: "ForTest",
template: "{controller}/{action}/{des}",
defaults: new { controller = "Comment", action = "Test", des = "no comment!" }
);
cshtml文件的一部分:
<form method="post" asp-controller="Comment" asp-action="Test" enctype="multipart/form-data">
<div class="form-group">
<textarea id="des" class="form-control" rows="3"></textarea>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
CommentController 的一部分 class:
[Route("[controller]")]
public class CommentController : Controller
{
private readonly ApplicationDbContext _context;
public CommentController(ApplicationDbContext context)
{
_context = context;
}
[HttpPost]
[Route("Test/{des}")]
[ValidateAntiForgeryToken]
public IActionResult Test(string des)
{
return null;
}
}
我建议在 textarea
上使用 asp-for
属性并使用 ViewModel class。
另外,修复 Route
属性。
控制器/型号
public class TestViewModel
{
public string des { get; set; }
}
public class CommentController : Controller
{
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Test(TestViewModel testViewModel)
{
return Ok(testViewModel.des);
}
}
cshtml
@using @*Set proper namespace for TestViewModel*@
@model TestViewModel
<form method="post" asp-controller="Comment" asp-action="Test" enctype="multipart/form-data">
<div class="form-group">
<textarea asp-for="des" rows="3"></textarea>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>