Skip to main content


Showing posts with the label As.Net Core MVC

A Brief Tour On .NET Core View Components

View Components are small pieces or chunks of a reusable block of code.   A View Component is made of the class(Component Class) and a view that looks like Controller. But View Component can't be triggered or initialized by a user request like MVC Controller, it will be invoked from code manually. A View or Razor can be completely or partially build using View Components. Create A .Net Core MVC Sample: Let's understand View Components by doing simple examples on it. So let's create a sample .Net Core MVC application(another choice to use like Razor Pages sample application). Use either Visual Studio 2019(IDE supports .Net Core 3.0 plus version) or Visual Studio Code . Implement The View Component Class: View Component Class is the logic container where we can prepare data that need to be bind to view on the render. Create a folder like ViewComponents where will create all our application components. A POCO class that inherits Microsoft.AspNetCore.Mvc.ViewComponent can be

Dynamic Data Binding Of Email Body Template Using .NET Core Razor Library

In general, there are two most common approaches to build an email template like: System.Text.StringBuilder using this we generate template by appending n-number of strings. This approach is hard to maintain, can not do code debug, etc. Another approach is like storing the entire email template in the database , where the template contains a placeholder to be replaced with dynamic data. Compare to the StringBuilder approach, the preferring database will make code Maintainance easy. But in this approach also debug code is hard. What Kind Of Solution Razor Library Provides?: Razor Library is a .Net Standard Library that has an inbuild razor engine where we can create Razor Page, MVC Views. It works as similar to MVC Views or Razor Pages where generate pages with Model binding. So by using the Razor Library, we need to create a custom provider Razor Engine where we can fetch the Html of the page render using Model binding. So in this approach, we create Mvc View or Razor Page (.cshtml

.Net Core Session Management

The Session helps to store user data in the application memory. Since the user data stores on the application it quick and fast to access. .Net Core Session data stored application using the cache, this cache can be either In-Memory or Distributed Cache.  Session Work-flow: On the user request the application from the browser, the server will create a session with an id called Session-Id.  This Session-Id will be given to the user in response by storing it in the cookie. So on every next request, this cookie will reach to the application which contains Session-Id.  An application uses the SessionId as the main key and stores all user data in the application cache. So by receiving a cookie from a client with Session-Id application will fetch the session stored data as per request.  This cookie session is browser-specific it is not sharable between browsers.  We can set session time out in our application, where after the time session data will get automatically cleared. Create A Sample

.NET Core MVC Application File Upload To Physical Location With Streaming Technique(Useful For Large Files) - Part 2

In  Part 1 we have explored how to upload large files to a server using Streaming Technique. A complete .Net Core sample application has been developed from scratch to understand the file upload. Also discussed on custom model binding manually from the raw form data as well as triggering model validation. I recommend understanding  Part 1 is essential before jumping here.  AJAX Call To File Upload(MVC or Web API): Let's develop an action method that displays a form with a file upload field. Controller/AjaxFileUploadController.cs: using Microsoft.AspNetCore.Mvc; namespace StreamFileUpload.App.Controllers { [Route("ajax-file-upload")] public class AjaxFileUplaodController : Controller { [Route("add-file")] public IActionResult AddFile() { return View(); } } } Let's develop the form that posts the data using the AJAX call. Views/AjaxFileUpload/AddFile.cshtml: <div> <form action="

.NET Core MVC Application File Upload To Physical Location With Streaming Technique(Useful For Large Files) - Part 1

Streaming Technique In File Upload: Streaming Technique is useful in uploading the larger files. Uploading file is achieved as a multipart request where the files are processed directly by the application. In Streaming Technique file uploading can not be done with Model Binding(but in buffered technique, files uploading can be done with Model Binding by using IFormFile type). So the file is accessed directly from the request object(as multipart request) and processed. Since Model Binding will not work here every filed from the form that is like text fields, file uploading fields, etc are received as 'form-data' format in the multipart request. Streaming helps in scaling the application. Streaming doesn't demand memory or disk space(but in buffered technique, file upload highly depends on the RAM, which doesn't work for large file uploading). Note: Click here for file uploading using buffer technique Create A Sample MVC Application: Let's understand