MVC 4, создать динамический URL для страниц - PullRequest
0 голосов
/ 13 июня 2018

Допустим, у меня есть модель под названием Artikel.эта статья содержит HTML "основной" текст.и заголовок, состоящий из одного слова.

Затем я хочу создать систему, в которой я могу использовать одно представление для визуализации всего содержимого тела модели "Article".

, но использовать статьи Title prop.создать URL для сайта.

Так что, если я получил 2 статьи.один с заголовком «О программе», а другой с заголовком «Контакт»

я бы в конечном итоге получил URL, например «site / About» и «site / Contact»

И так как я пытаюсьчтобы сделать это из источника данных, мне нужен какой-то способ сделать это динамически.поэтому я не могу просто сделать контроллеры для каждого артикеля.(Что было бы плохо, если бы я получил много статей в любом случае)

Я пытался в моем RouteConfig настроить mapRoute.но никак не могу найти, что бы сделать это.

Я ищу в сети это, попробовал эти решения.

http://www.dotnet -stuff.com / tutorials / aspnet-Маршрутизация mvc / понимание-перезаписи и-атрибута URL в asp-net-mvc-mvc5-with-examples

перезапись URL в .Net MVC

https://www.youtube.com/watch?v=h405AbJyiH4

https://forums.asp.net/t/2094370.aspx?How+To+Create+URL+Rewrite+In+ASP+NET+C+using+MVC+

Но не повезло.Любой, кто знает, как это сделать, или тот, кто может помочь мне в правильном направлении .?

1 Ответ

0 голосов
/ 13 июня 2018

Существует много способов решения этой проблемы, например, вы можете установить Artikel в качестве контроллера по умолчанию, создать новый маршрут или собственный маршрут и т. Д. Я рекомендую включить artikel в URL website/artikel/pagename для поиска статей..

public static void RegisterRoutes(RouteCollection routes)
{
    routes.MapRoute(
        name: "Artikel",
        url: "artikel/{id}",
        defaults: new { controller = "Artikel", action = "Index", id = UrlParameter.Optional }
    );

    //default and other routes go here, after Artikel
}

В контроллере Artikel:

public ActionResult Index(string id)
{
    Artikel model = Database.GetArticle(id);
    return View(model);
}

Модель:

public class Artikel
{
    public string Title { get; set; }
    public string Body { get; set; }
}

Авид:

@model MyApplication.Models.Artikel
@{
    ViewBag.Title = "Index";
}

<h2>@Model.Title</h2>
<span>@Model.Body</span>
...