我尝试提交一个简单的Form
,但我收到了这个错误:
“发送数据状态代码:404;未找到”
我使用了ASP.NET Core 2
,我是新手!
我该如何解决这个问题?
Startup类的一部分:
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类的一部分:
[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;
}
}
答案 0 :(得分:1)
我建议在 asp-for
上使用 textarea
属性并使用ViewModel类。
另外,修复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>