Clear        


                
                    @* Model object type declaration according to the type returned by the action (View1). *@
@model string

@* 
    This is a Razor comment.
    Razor syntax provides the usage of HTML and C# together in views.  
  
    In order to switch to C# in HTML, @ is used.  
   
    C# code blocks can be written in @{ ... }, for example  
    @{  
        var name = "Cagil Alsac";  
    }  
    and the value of the name variable can be printed in HTML like  
    <h1>@name</h1>  
  
    Other C# code blocks such as if, foreach, etc. can be written like  
    @if (true)  
    {  
        <label>Success.</label>  
    }  
    else  
    {  
        <label>Error!</label>  
    }  
  
    @foreach (string item in list)  
    {  
        <p>@item</p>  
    }  
*@

<p>
    @* Model object of type string to print the assigned and returned value in the action (View1). *@
    @Model
</p>

@*
    ViewData and ViewBag are the same collection (dictionary).
    They carry extra data other than the model object from a controller action to its view, or between views.
    ViewData["Text"] can also be used instead of ViewBag.Text.
*@
@if (ViewBag.Text is not null) // If Text key of the ViewData dictionary has a value, print the value in HTML
{
    <hr />
    <p>@ViewBag.Text</p>
}

@* TempData carries data from an action to the redirected action, therefore to the redirected action's view. *@
@if (TempData["Message"] is not null) // If Message key of the TempData dictionary has a value, print the value in HTML
{
    <hr />
    <p>@TempData["Message"]</p>
}