无法在controller,Task <iactionresult> asp.net核心中调用异步操作

时间:2019-02-24 08:44:09

标签: c# asp.net-core asp.net-core-mvc

我在局部视图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);
    }

0 个答案:

没有答案