Lite upprensning bland kontroller och views, cutomers kan läggas till och uppdateras
This commit is contained in:
@ -24,7 +24,7 @@ namespace Vidly
|
|||||||
routes.MapRoute(
|
routes.MapRoute(
|
||||||
name: "Default",
|
name: "Default",
|
||||||
url: "{controller}/{action}/{id}",
|
url: "{controller}/{action}/{id}",
|
||||||
defaults: new { controller = "Customers", action = "Index", id = UrlParameter.Optional }
|
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -23,13 +23,46 @@ namespace Vidly.Controllers
|
|||||||
_context.Dispose();
|
_context.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
// GET: Vidly
|
//// GET: Vidly
|
||||||
public ActionResult Index()
|
//public ActionResult Index()
|
||||||
|
//{
|
||||||
|
// return View();
|
||||||
|
//}
|
||||||
|
|
||||||
|
public ActionResult New()
|
||||||
{
|
{
|
||||||
return View();
|
var membershipTypes = _context.MembershipTypes.ToList();
|
||||||
|
var viewModel = new CustomerFormViewModel
|
||||||
|
{
|
||||||
|
Customer = new Customer(),
|
||||||
|
MembershipTypes = membershipTypes
|
||||||
|
};
|
||||||
|
return View("CustomerForm",viewModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ActionResult Customers()
|
[HttpPost]
|
||||||
|
public ActionResult Save(Customer customer)
|
||||||
|
{
|
||||||
|
if(customer.Id==0)
|
||||||
|
_context.Customers.Add(customer);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var customerInDb = _context.Customers.Single(c => c.Id == customer.Id);
|
||||||
|
// Mapper.Map(customer, customerInDb);
|
||||||
|
|
||||||
|
customerInDb.Name = customer.Name;
|
||||||
|
customerInDb.BirthDate = customer.BirthDate;
|
||||||
|
customerInDb.MembershipTypeId = customer.MembershipTypeId;
|
||||||
|
customerInDb.IsSubscribedToNewsLetter = customer.IsSubscribedToNewsLetter;
|
||||||
|
}
|
||||||
|
_context.SaveChanges();
|
||||||
|
|
||||||
|
return RedirectToAction("Index","Customers");
|
||||||
|
}
|
||||||
|
|
||||||
|
[Route("Customers")]
|
||||||
|
[Route("Customers/Index")]
|
||||||
|
public ActionResult Index()
|
||||||
{
|
{
|
||||||
|
|
||||||
var viewModel = new CustomersViewModel()
|
var viewModel = new CustomersViewModel()
|
||||||
@ -40,7 +73,6 @@ namespace Vidly.Controllers
|
|||||||
return View(viewModel);
|
return View(viewModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Route("Customers/Details/{nr}")]
|
|
||||||
public ActionResult Customer(int nr)
|
public ActionResult Customer(int nr)
|
||||||
{
|
{
|
||||||
var customer = _context.Customers.Include(c => c.MembershipType).SingleOrDefault(c => c.Id == nr);
|
var customer = _context.Customers.Include(c => c.MembershipType).SingleOrDefault(c => c.Id == nr);
|
||||||
@ -49,9 +81,26 @@ namespace Vidly.Controllers
|
|||||||
return View(customer);
|
return View(customer);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ActionResult Movies()
|
public ActionResult Edit(int id)
|
||||||
{
|
{
|
||||||
return View();
|
var customer = _context.Customers.SingleOrDefault(c=>c.Id==id);
|
||||||
|
|
||||||
|
if (customer == null)
|
||||||
|
return HttpNotFound();
|
||||||
|
|
||||||
|
var viewModel = new CustomerFormViewModel
|
||||||
|
{
|
||||||
|
Customer = customer,
|
||||||
|
MembershipTypes = _context.MembershipTypes.ToList()
|
||||||
|
};
|
||||||
|
|
||||||
|
return View("CustomerForm", viewModel);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//public ActionResult Movies()
|
||||||
|
//{
|
||||||
|
// return View();
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -8,6 +8,10 @@ namespace Vidly.Controllers
|
|||||||
{
|
{
|
||||||
public class HomeController : Controller
|
public class HomeController : Controller
|
||||||
{
|
{
|
||||||
|
|
||||||
|
[Route("")]
|
||||||
|
[Route("Home")]
|
||||||
|
[Route("Home/Index")]
|
||||||
public ActionResult Index()
|
public ActionResult Index()
|
||||||
{
|
{
|
||||||
return View();
|
return View();
|
||||||
|
|||||||
@ -18,7 +18,14 @@ namespace Vidly.Controllers
|
|||||||
_context = new ApplicationDbContext();
|
_context = new ApplicationDbContext();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ActionResult Movies()
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
_context.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Route("Movies")]
|
||||||
|
[Route("Movies/Index")]
|
||||||
|
public ActionResult Index()
|
||||||
{
|
{
|
||||||
var viewModel = new MoviesViewModel()
|
var viewModel = new MoviesViewModel()
|
||||||
{
|
{
|
||||||
|
|||||||
@ -9,12 +9,19 @@ namespace Vidly.Models
|
|||||||
public class Customer
|
public class Customer
|
||||||
{
|
{
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
[StringLength(255)]
|
[StringLength(255)]
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
|
|
||||||
|
[Display(Name = "Date of Birth")]
|
||||||
public DateTime? BirthDate { get; set; }
|
public DateTime? BirthDate { get; set; }
|
||||||
|
|
||||||
public bool IsSubscribedToNewsLetter { get; set; }
|
public bool IsSubscribedToNewsLetter { get; set; }
|
||||||
|
|
||||||
public MembershipType MembershipType { get; set; }
|
public MembershipType MembershipType { get; set; }
|
||||||
|
|
||||||
|
[Display(Name = "Membership Type")]
|
||||||
public byte MembershipTypeId { get; set; }
|
public byte MembershipTypeId { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -22,6 +22,7 @@ namespace Vidly.Models
|
|||||||
{
|
{
|
||||||
public DbSet<Customer> Customers { get; set; }
|
public DbSet<Customer> Customers { get; set; }
|
||||||
public DbSet<Movie> Movies { get; set; }
|
public DbSet<Movie> Movies { get; set; }
|
||||||
|
public DbSet<MembershipType> MembershipTypes { get; set; }
|
||||||
|
|
||||||
public ApplicationDbContext()
|
public ApplicationDbContext()
|
||||||
// : base("DefaultConnection", throwIfV1Schema: false)
|
// : base("DefaultConnection", throwIfV1Schema: false)
|
||||||
|
|||||||
@ -241,6 +241,7 @@
|
|||||||
<Compile Include="Startup.cs" />
|
<Compile Include="Startup.cs" />
|
||||||
<Compile Include="ViewModels\CustomersViewModel.cs" />
|
<Compile Include="ViewModels\CustomersViewModel.cs" />
|
||||||
<Compile Include="ViewModels\MoviesViewModel.cs" />
|
<Compile Include="ViewModels\MoviesViewModel.cs" />
|
||||||
|
<Compile Include="ViewModels\CustomerFormViewModel.cs" />
|
||||||
<Compile Include="ViewModels\RandomMovieViewModel.cs" />
|
<Compile Include="ViewModels\RandomMovieViewModel.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@ -278,7 +279,7 @@
|
|||||||
<Content Include="Views\Shared\_Layout.cshtml" />
|
<Content Include="Views\Shared\_Layout.cshtml" />
|
||||||
<Content Include="Views\Home\About.cshtml" />
|
<Content Include="Views\Home\About.cshtml" />
|
||||||
<Content Include="Views\Home\Contact.cshtml" />
|
<Content Include="Views\Home\Contact.cshtml" />
|
||||||
<Content Include="Views\Home\Index.cshtml" />
|
<Content Include="Views\Home\Old_Index.cshtml" />
|
||||||
<Content Include="Views\Account\_ExternalLoginsListPartial.cshtml" />
|
<Content Include="Views\Account\_ExternalLoginsListPartial.cshtml" />
|
||||||
<Content Include="Views\Account\ConfirmEmail.cshtml" />
|
<Content Include="Views\Account\ConfirmEmail.cshtml" />
|
||||||
<Content Include="Views\Account\ExternalLoginConfirmation.cshtml" />
|
<Content Include="Views\Account\ExternalLoginConfirmation.cshtml" />
|
||||||
@ -301,11 +302,13 @@
|
|||||||
<Content Include="Views\Shared\_LoginPartial.cshtml" />
|
<Content Include="Views\Shared\_LoginPartial.cshtml" />
|
||||||
<Content Include="Views\Movies\Random.cshtml" />
|
<Content Include="Views\Movies\Random.cshtml" />
|
||||||
<Content Include="Views\Shared\_NavBar.cshtml" />
|
<Content Include="Views\Shared\_NavBar.cshtml" />
|
||||||
|
<Content Include="Views\Customers\Old_Index.cshtml" />
|
||||||
<Content Include="Views\Customers\Index.cshtml" />
|
<Content Include="Views\Customers\Index.cshtml" />
|
||||||
<Content Include="Views\Customers\Customers.cshtml" />
|
<Content Include="Views\Movies\Index.cshtml" />
|
||||||
<Content Include="Views\Movies\Movies.cshtml" />
|
|
||||||
<Content Include="Views\Customers\Customer.cshtml" />
|
<Content Include="Views\Customers\Customer.cshtml" />
|
||||||
<Content Include="Views\Movies\Movie.cshtml" />
|
<Content Include="Views\Movies\Movie.cshtml" />
|
||||||
|
<Content Include="Views\Customers\CustomerForm.cshtml" />
|
||||||
|
<Content Include="Views\Home\Index.cshtml" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Folder Include="App_Data\" />
|
<Folder Include="App_Data\" />
|
||||||
|
|||||||
14
Vidly/ViewModels/CustomerFormViewModel.cs
Normal file
14
Vidly/ViewModels/CustomerFormViewModel.cs
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web;
|
||||||
|
using Vidly.Models;
|
||||||
|
|
||||||
|
namespace Vidly.ViewModels
|
||||||
|
{
|
||||||
|
public class CustomerFormViewModel
|
||||||
|
{
|
||||||
|
public IEnumerable<MembershipType> MembershipTypes { get; set; }
|
||||||
|
public Customer Customer { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
40
Vidly/Views/Customers/CustomerForm.cshtml
Normal file
40
Vidly/Views/Customers/CustomerForm.cshtml
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
@model Vidly.ViewModels.CustomerFormViewModel
|
||||||
|
@{
|
||||||
|
/**/
|
||||||
|
|
||||||
|
ViewBag.Title = "New";
|
||||||
|
Layout = "~/Views/Shared/_Layout.cshtml";
|
||||||
|
}
|
||||||
|
|
||||||
|
@if (Model.Customer.Id==null|| Model.Customer.Id == 0)
|
||||||
|
{
|
||||||
|
<h2>New Customer</h2>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
<h2>Edit Customer</h2>
|
||||||
|
}
|
||||||
|
|
||||||
|
@using (@Html.BeginForm("Save", "Customers"))
|
||||||
|
{
|
||||||
|
<div class="form-group">
|
||||||
|
@Html.LabelFor(m => m.Customer.Name)
|
||||||
|
@Html.TextBoxFor(m => m.Customer.Name, new { @class = "form-control" })
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
@Html.LabelFor(m => m.Customer.BirthDate)
|
||||||
|
@Html.TextBoxFor(m => m.Customer.BirthDate, "{0:d MMM yyyy}", new { @class = "form-control" })
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
@Html.LabelFor(m => m.Customer.MembershipTypeId)
|
||||||
|
@Html.DropDownListFor(m => m.Customer.MembershipTypeId, new SelectList(Model.MembershipTypes, "Id", "Name"), "Select membership Type", new { @class = "form-control" })
|
||||||
|
</div>
|
||||||
|
<div class="checkbox">
|
||||||
|
<label>
|
||||||
|
@Html.CheckBoxFor(m => m.Customer.IsSubscribedToNewsLetter) Subscribed to Newsletter ?
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
@Html.HiddenFor(m => m.Customer.Id)
|
||||||
|
<button type="submit" class="btn btn-primary">Save</button>
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,33 +0,0 @@
|
|||||||
@model Vidly.ViewModels.CustomersViewModel
|
|
||||||
@{
|
|
||||||
ViewBag.Title = "Customers";
|
|
||||||
Layout = "~/Views/Shared/_Layout.cshtml";
|
|
||||||
}
|
|
||||||
|
|
||||||
<h2>Customers</h2>
|
|
||||||
|
|
||||||
@if (Model.Customers.Count == 0)
|
|
||||||
{
|
|
||||||
<text>No one has rented this movie before.</text>
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<table class="table table-bordered table-hover">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Customer</th>
|
|
||||||
<th >Membership Type</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
@foreach (var customer in Model.Customers)
|
|
||||||
{
|
|
||||||
<tr>
|
|
||||||
<td>@Html.ActionLink(@customer.Name, "Details", "Customers", new { id = @customer.Id }, null)</td>
|
|
||||||
<td>@customer.MembershipType.Name</td>
|
|
||||||
</tr>
|
|
||||||
}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,11 +1,37 @@
|
|||||||
|
@model Vidly.ViewModels.CustomersViewModel
|
||||||
@{
|
@{
|
||||||
ViewBag.Title = "Vidly";
|
ViewBag.Title = "Customers";
|
||||||
|
Layout = "~/Views/Shared/_Layout.cshtml";
|
||||||
}
|
}
|
||||||
|
|
||||||
<div class="jumbotron">
|
<h2>Customers</h2>
|
||||||
<h1>V i d l y</h1>
|
|
||||||
<p class="lead">Vidly is a great video rental system built in MVC5 with entity framework, Razorviews and Javascript.</p>
|
|
||||||
@*<p><a href="https://asp.net" class="btn btn-primary btn-lg">Learn more »</a></p>*@
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
@*<button type="submit" class="btn btn-primary" onclick="">New Customer</button>*@
|
||||||
|
@Html.ActionLink("New Customer", "New", "Customers", null, new { @class = "btn btn-primary" })
|
||||||
|
|
||||||
|
|
||||||
|
@if (Model.Customers.Count == 0)
|
||||||
|
{
|
||||||
|
<text>No one has rented this movie before.</text>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
<table class="table table-bordered table-hover">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Customer</th>
|
||||||
|
<th>Membership Type</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach (var customer in Model.Customers)
|
||||||
|
{
|
||||||
|
<tr>
|
||||||
|
<td>@Html.ActionLink(@customer.Name, "Edit", "Customers", new { id = @customer.Id }, null)</td>
|
||||||
|
<td>@customer.MembershipType.Name</td>
|
||||||
|
</tr>
|
||||||
|
}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
}
|
||||||
11
Vidly/Views/Customers/Old_Index.cshtml
Normal file
11
Vidly/Views/Customers/Old_Index.cshtml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
|
||||||
|
@{
|
||||||
|
ViewBag.Title = "Vidly";
|
||||||
|
}
|
||||||
|
|
||||||
|
<div class="jumbotron">
|
||||||
|
<h1>V i d l y</h1>
|
||||||
|
<p class="lead">Vidly is a great video rental system built in MVC5 with entity framework, Razorviews and Javascript.</p>
|
||||||
|
@*<p><a href="https://asp.net" class="btn btn-primary btn-lg">Learn more »</a></p>*@
|
||||||
|
</div>
|
||||||
|
|
||||||
@ -1,31 +1,11 @@
|
|||||||
@{
|
|
||||||
ViewBag.Title = "Home Page";
|
@{
|
||||||
|
ViewBag.Title = "Vidly";
|
||||||
}
|
}
|
||||||
|
|
||||||
<div class="jumbotron">
|
<div class="jumbotron">
|
||||||
<h1>ASP.NET</h1>
|
<h1>V i d l y</h1>
|
||||||
<p class="lead">ASP.NET is a free web framework for building great Web sites and Web applications using HTML, CSS and JavaScript.</p>
|
<p class="lead">Vidly is a great video rental system built in MVC5 with entity framework, Razorviews and Javascript.</p>
|
||||||
<p><a href="https://asp.net" class="btn btn-primary btn-lg">Learn more »</a></p>
|
@*<p><a href="https://asp.net" class="btn btn-primary btn-lg">Learn more »</a></p>*@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-4">
|
|
||||||
<h2>Getting started</h2>
|
|
||||||
<p>
|
|
||||||
ASP.NET MVC gives you a powerful, patterns-based way to build dynamic websites that
|
|
||||||
enables a clean separation of concerns and gives you full control over markup
|
|
||||||
for enjoyable, agile development.
|
|
||||||
</p>
|
|
||||||
<p><a class="btn btn-default" href="https://go.microsoft.com/fwlink/?LinkId=301865">Learn more »</a></p>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-4">
|
|
||||||
<h2>Get more libraries</h2>
|
|
||||||
<p>NuGet is a free Visual Studio extension that makes it easy to add, remove, and update libraries and tools in Visual Studio projects.</p>
|
|
||||||
<p><a class="btn btn-default" href="https://go.microsoft.com/fwlink/?LinkId=301866">Learn more »</a></p>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-4">
|
|
||||||
<h2>Web Hosting</h2>
|
|
||||||
<p>You can easily find a web hosting company that offers the right mix of features and price for your applications.</p>
|
|
||||||
<p><a class="btn btn-default" href="https://go.microsoft.com/fwlink/?LinkId=301867">Learn more »</a></p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
31
Vidly/Views/Home/Old_Index.cshtml
Normal file
31
Vidly/Views/Home/Old_Index.cshtml
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
@{
|
||||||
|
ViewBag.Title = "Home Page";
|
||||||
|
}
|
||||||
|
|
||||||
|
<div class="jumbotron">
|
||||||
|
<h1>ASP.NET</h1>
|
||||||
|
<p class="lead">ASP.NET is a free web framework for building great Web sites and Web applications using HTML, CSS and JavaScript.</p>
|
||||||
|
<p><a href="https://asp.net" class="btn btn-primary btn-lg">Learn more »</a></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-4">
|
||||||
|
<h2>Getting started</h2>
|
||||||
|
<p>
|
||||||
|
ASP.NET MVC gives you a powerful, patterns-based way to build dynamic websites that
|
||||||
|
enables a clean separation of concerns and gives you full control over markup
|
||||||
|
for enjoyable, agile development.
|
||||||
|
</p>
|
||||||
|
<p><a class="btn btn-default" href="https://go.microsoft.com/fwlink/?LinkId=301865">Learn more »</a></p>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4">
|
||||||
|
<h2>Get more libraries</h2>
|
||||||
|
<p>NuGet is a free Visual Studio extension that makes it easy to add, remove, and update libraries and tools in Visual Studio projects.</p>
|
||||||
|
<p><a class="btn btn-default" href="https://go.microsoft.com/fwlink/?LinkId=301866">Learn more »</a></p>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4">
|
||||||
|
<h2>Web Hosting</h2>
|
||||||
|
<p>You can easily find a web hosting company that offers the right mix of features and price for your applications.</p>
|
||||||
|
<p><a class="btn btn-default" href="https://go.microsoft.com/fwlink/?LinkId=301867">Learn more »</a></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@ -4,12 +4,12 @@
|
|||||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
|
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
<span class="navbar-toggler-icon"></span>
|
<span class="navbar-toggler-icon"></span>
|
||||||
</button>
|
</button>
|
||||||
@Html.ActionLink("Vidly", "Index", "Customers", new { area = "" }, new { @class = "navbar-brand" })
|
@Html.ActionLink("Vidly", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })
|
||||||
<div class="navbar-collapse collapse" id="navbarSupportedContent">
|
<div class="navbar-collapse collapse" id="navbarSupportedContent">
|
||||||
|
|
||||||
<ul class="nav navbar-nav mr-auto">
|
<ul class="nav navbar-nav mr-auto">
|
||||||
<li class="nav-item">@Html.ActionLink("Customers", "Customers", "Customers", null, new { @class = "nav-link" })</li>
|
<li class="nav-item">@Html.ActionLink("Customers", "Index", "Customers", null, new { @class = "nav-link" })</li>
|
||||||
<li class="nav-item">@Html.ActionLink("Movies", "Movies", "Movies", null, new { @class = "nav-link" })</li>
|
<li class="nav-item">@Html.ActionLink("Movies", "Index", "Movies", null, new { @class = "nav-link" })</li>
|
||||||
@*<li class="nav-item">@Html.ActionLink("Contact", "Contact", "Home", null, new { @class = "nav-link" })</li>*@
|
@*<li class="nav-item">@Html.ActionLink("Contact", "Contact", "Home", null, new { @class = "nav-link" })</li>*@
|
||||||
</ul>
|
</ul>
|
||||||
@Html.Partial("_LoginPartial")
|
@Html.Partial("_LoginPartial")
|
||||||
|
|||||||
Reference in New Issue
Block a user