MVC 4,为页面创建动态 URL



假设我有一个名为artikel的模型。 本文包含 Html"正文"文本。和一个单词标题。

然后我想创建一个系统,在其中我可以使用一个视图来呈现"文章"模型的所有正文内容。

但使用文章标题属性为网站创建 URL。

所以如果我有 2 篇文章。 一个标题为"关于",另一个标题为"联系人">

我最终会得到像这样的网址 "网站/关于" 和 "站点/联系人">

由于我正在尝试从数据源进行此操作,因此我需要某种方法来执行此动态操作。 所以我不能只为每个工件制作控制器。(无论如何,如果我有很多文章,那就不好了(

我一直在尝试在我的RouteConfig中设置一个mapRoute。 但无论如何都找不到可以做到这一点的。

我在网上搜索它,尝试了这些解决方案。

http://www.dotnet-stuff.com/tutorials/aspnet-mvc/understanding-url-rewriting-and-url-attribute-routing-in-asp-net-mvc-mvc5-with-examples

.Net MVC 中的 URL 重写

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+

但是没有运气。 任何知道如何做到这一点的人,或者可以帮助我朝着正确的方向前进的人。?

有很多方法可以解决这个问题,例如您可以将Artikel设置为默认控制器,创建新路由或自定义路由等。我建议在 urlwebsite/artikel/pagename中包含 artikel 以查找文章。

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>

相关内容

  • 没有找到相关文章

最新更新