Как можно отображать только имя слага в URL-адресе вместо xyz.com/Page/Details?slug=terms-and-conditions. Я создал Page Contrller с Action as Details. Я хочу открывать страницу по щелчку, и в URL-адресе отображается только ярлык
- Класс модели страницы
public class Page
{
[Key]
public int PageID { get; set; }
[Required]
public string PageTitle { get; set; }
public string Slug { get; set; }
[Required]
[AllowHtml]
public string PageDesc { get; set; }
}
Контроллер страницы
public class PageController : Controller
{
// GET: Page
public ActionResult PagePartial()
{
List<Page> listPage;
using (Db db = new Db())
{
listPage = db.Pages.ToArray().ToList();
}
return PartialView(listPage);
}
public ActionResult Details(string slug)
{
using (Db db = new Db())
{
Page pageDTO = db.Pages.Where(x => x.Slug == slug).FirstOrDefault();
int id = pageDTO.PageID;
ViewBag.pageDesc = pageDTO.PageDesc;
}
return View();
}
}
Частичный просмотр страницы
@model IEnumerable<C4A.Models.VM.Page>
@{
Layout = null;
}
<ul style="display:inline;list-style:none;">
@foreach (var item in Model)
{
<li><a href="@Url.Action("Details", "Page", new { slug = item.Slug})">@item.PageTitle</a></li>
}
</ul>
Страница сведений
@model C4A.Models.VM.Page
@{
ViewBag.Title = "Details";
}
<div class="container">
<div class="row">
<div class="col-md-2 sidenav">
<p>@Html.Action("StoreMenuPartial", "Shop")</p>
<p>@Html.Action("CategoryMenuPartial", "Shop")</p>
</div>
<div class="col-md-8">
<p>@Html.Raw(ViewBag.pageDesc)</p>
</div>
<div class="col-md-2 sidenav">
ADS
</div>
</div>
</div>
_Layout доступ к частичному просмотру страницы для отображения перечисленных страниц, которые пользователь может щелкнуть
<div class="col-md-2">
<p style="margin-bottom:-2rem !important;"><strong>Our Links</strong></p>
<p>@Html.Action("PagePartial", "Page")</p>
</div>
Помощь по этому вопросу очень ценится. Заранее благодарю: D