簡體   English   中英

Controller 動作方法未被調用在 ASP.NET Core 中發出發布請求

[英]Controller action method not being called making a post request in ASP.NET Core

我正在嘗試使用 model 綁定將用戶選擇的文件發送到 controller,此操作方法未被命中,我不確定為什么。 我在里面放了一個斷點,但它不會被擊中。

這是我的導入視圖:

@model FileModel

<h1 class="title-underline">Import file</h1>

<div class="form-group">
    <form asp-controller="Import" asp-action="FileImport" method="POST" enctype="multipart/form-data">
        <label for="importFile">Select a past grant to import</label>
        <input type="file" id="importFile" name="importFile" asp-for="ImportFile">
    </form>
    <button type="submit" id="btnSubmit" class="btn btn-tnl btn-block">Import</button>
</div>

這是我的 model:

public class FileModel
{
    public IFormFile ImportFile { set; get; }
}

這是我的 ImportController 中的操作方法:

    [HttpPost, ValidateAntiForgeryToken]
    public IActionResult FileImport(FileModel model)
    {
        IFormFile file = model.ImportFile;

        var fileName = Path.GetFileName(file.FileName);
        var contentType = file.ContentType;



        return View("Index");

    }

我已經提供了 controller、操作、方法和加密類型,所以我不確定還缺少什么阻止方法被命中。 是不是和參數中的model有關?

我看到的一個問題是提交按鈕在表單之外。 當您單擊它時,它沒有執行任何操作。 嘗試將其放入<form>...</form>塊並使輸入類型 =“提交”,而不是“按鈕”。 或者為它編寫一個點擊處理程序來調用表單上的提交。

您可以在此處查看語法https://www.w3schools.com/html/html_form_elements.asp

<div class="form-group">
    <form asp-controller="Import" asp-action="FileImport" method="POST" enctype="multipart/form-data">
        <label for="importFile">Select a past grant to import</label>
        <input type="file" id="importFile" name="importFile" asp-for="ImportFile">
        <input type="submit" id="btnSubmit" class="btn btn-tnl btn-block" value="Import">
    </form>
</div>

您的按鈕應該在表單標簽內。 不在外面。

<form>
   <button type="submit">Import</button>
</form>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM