Skip to main content
net8.0

ASP.NET Core MVC helpers for Danom.

Published
Oct 11, 2024
2y ago
Total Downloads
2.0K
2,005

Install

dotnet add package Danom.Mvc --version 1.0.0-beta1
ProductVersions
.NET
net8.0

README

Danom.Mvc

NuGet Version build

Danom.Mvc is a library that provides a set of rendering utilities to help integrate the Danom library with common tasks in ASP.NET Core MVC applications.

Getting Started

Install the Danom.Mvc NuGet package:

PM>  Install-Package Danom.Mvc

Or using the dotnet CLI

dotnet add package Danom.Mvc

Working With Option

using Danom.Mvc;
using Microsoft.AspNetCore.Mvc;

public sealed class OptionController
    : DanomController
{
    private readonly Option<string> _someOption = Option.Some("Hello world");
    private readonly Option<string> _noneOption = Option<string>.None();

    public IActionResult OptionSome() =>
        ViewOption(
            option: _someOption,
            viewName: "Detail");

    // Returns the ASP.NET default `NotFound` result
    public IActionResult OptionNone() =>
        ViewOption(
            option: _noneOption,
            viewName: "Detail");

    public IActionResult OptionNoneCustom() =>
        ViewOption(
            option: _noneOption,
            viewName: "Detail",
            noneAction: () => NotFound("Not found!"));
}

Working with Result

using Danom.Mvc;
using Microsoft.AspNetCore.Mvc;

public sealed class ResultController
    : DanomController
{
    private readonly Result<string, ResultErrors> _okResult = Result.Ok("Success!");
    private readonly Result<string, ResultErrors> _errorResult = Result<string>.Error(["An error occurred."]);
    private readonly Result<string, string> _stringErrorResult = Result<string, string>.Error("An error occurred.");

    public IActionResult ResultOk() =>
        ViewResult(
            result: _okResult,
            viewName: "Detail");

    public IActionResult ResultErrors() =>
        ViewResult(
            result: _errorResult,
            viewName: "Detail");

    // Demonstrating error customization, using a string literal for error output
    public IActionResult ResultError() =>
        ViewResult(
            result: _stringErrorResult,
            errorAction: errors => View("Detail", errors),
            viewName: "Detail");

}

Working with ResultOption

using Danom.Mvc;
using Microsoft.AspNetCore.Mvc;

public sealed class ResultOptionController
    : DanomController
{
    private readonly ResultOption<string, ResultErrors> _okResult = ResultOption.Ok("Success!");
    private readonly ResultOption<string, ResultErrors> _errorResult = ResultOption<string>.Error("An error occurred.");
    private readonly ResultOption<string, string> _stringErrorResult = ResultOption<string, string>.Error("An error occurred.");

    public IActionResult ResultOk() =>
        ViewResultOption(
            resultOption: _okResult,
            viewName: "Detail");

    public IActionResult ResultErrors() =>
        ViewResultOption(
            resultOption: _errorResult,
            viewName: "Detail");

    // Demonstrating error customization, using a string literal for error output
    public IActionResult ResultError() =>
        ViewResultOption(
            resultOption: _stringErrorResult,
            errorAction: errors => View("Detail", errors),
            viewName: "Detail");
}

Changes from Previous Version

No structural changes between v1.0.0-alpha1 and v1.0.0-beta1.

Adoption Assessment

Assess this package against its supported frameworks, license, maintenance signals and dependency graph before making it a project standard.

This version is marked prerelease. Validate its API and upgrade path before production use.Compatibility metadata lists 1 target framework; confirm the exact target used by your application.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.