簡體   English   中英

如何制作帶有文件上傳的 Asp.Net Core 表單?

[英]How to make an Asp.Net Core form with file upload?

我正在使用視圖模型為用戶創建一個注冊表單。 除了輸入用戶名、電子郵件和密碼等數據外,用戶還必須上傳圖像。

當用戶完成輸入數據並將視圖模型發送到操作方法時,就會發生一些有趣的事情。

該文件為空,但所有其他數據都是正確的。

這是視圖模型:

public class RegisterAsBusiness
{   
    public string UserName { get; set; }
    public IFormFile FormFile { get; set; }
    public string Email { get; set; }
}

這是 Html 部分:


@model AfsluttendeProject.Models.ViewModels.RegisterAsBusiness


<hr />
<div class="row">
    <div class="col-md-4">
        <form asp-action="RegisterAsBusiness">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
                <label asp-for="UserName" class="control-label"></label>
                <input asp-for="UserName" class="form-control" />
                <span asp-validation-for="UserName" class="text-danger"></span>
            </div>
            <div class="form-group">
                <dl>
                    <dt>
                        <label asp-for="FormFile"></label>
                    </dt>
                    <dd>
                        <input asp-for="FormFile" type="file">
                    </dd>
                </dl>

            </div>

  <div class="form-group">
                <label asp-for="Email" class="control-label"></label>
                <input asp-for="Email" class="form-control" />
                <span asp-validation-for="Email" class="text-danger"></span>
            </div>

            <div class="form-group">
                <input type="submit" value="Create" class="btn btn-default" />
            </div>
        </form>
    </div>
</div>


以及控制器中的方法:


public IActionResult RegisterAsBusiness()
{
    return View(new RegisterAsBusiness());
}

[HttpPost]
public async Task<IActionResult> RegisterAsBusiness(RegisterAsBusiness registration)
{
    return RedirectToAction("Login");
}

在您的表單中,您應該添加enctype="multipart/form-data"您應該檢查它的含義以及為什么需要

暫無
暫無

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

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