我在局部视图AddItemPartial.cshtml
中有一个表单@model TodoItem
<form asp-controller="Todo" asp-action="AddItem" method="POST">
<label asp-for="Title">Add a new item:</label>
<input asp-for="Title">
<button type="submit">Add</button>
</form>
我在Index.cshtml中调用部分视图,并传递了一个新的TodoItem()参数
@await Html.PartialAsync("AddItemPartial", new TodoItem())
我有一个名为TodoController的控制器。在我里面有2个动作,一个是异步的,另一个不是。如果以表单形式通过非异步操作
asp-action="Privacy"
一切正常。
public IActionResult Privacy() {}
我通过同步操作时出现问题
asp-action="AddItem"
然后它只会引发404错误。
下面是我的配置服务,TodoItemService在AddItem操作中使用了方法AddItemAsync
public async Task<IActionResult> AddItem(TodoItem newItem){}
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlite(
Configuration.GetConnectionString("DefaultConnection")));
services.AddDefaultIdentity<IdentityUser>()
.AddDefaultUI(UIFramework.Bootstrap4)
.AddEntityFrameworkStores<ApplicationDbContext>();
services.AddScoped<ITodoItemService, TodoItemService>();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}