Skip to main content

This is a new service.

File upload for

Read more about the file upload component on the Gov.UK Design System website

Model FileUploadForExampleDefaultViewModel.cs

public class FileUploadForExampleDefaultViewModel
{
    public IFormFile YourCsvFile { get; set; }
}

View FileUploadForExampleDefault.cshtml

@using GovUkDesignSystemDotNet
@model FileUploadForExampleDefaultViewModel

<form method="post" enctype="multipart/form-data">
    @await Html.GovUkFileUploadFor(
        m => m.YourCsvFile,
        new FileUploadViewModel
        {
            Label = new LabelViewModel
            {
                HtmlOrText = new HtmlOrText("Upload a CSV file")
            },
            Javascript = true
        })
    
    @await Html.GovUkButton(new ButtonViewModel
    {
        HtmlOrText = new HtmlOrText("Validate")
    })
</form>

Controller

public IActionResult MyActionName(FileUploadForExampleDefaultViewModel viewModel)
{
    if (viewModel.YourCsvFile == null)
    {
        ModelState.AddModelError(nameof(viewModel.YourCsvFile), "Upload a CSV file");
    }

    if (!ModelState.IsValid)
    {
        return View("FileUploadForExampleDefault", viewModel);
    }

    // Do some work with the validated view-model
    return View("InteractiveExampleValidationSuccessful");
}