MVC 4,为页面创建 URL 动态
MVC 4, create URL dynamic for pages
假设我有一个名为 artikel 的模型。
本文包含 Html "body" 文本。和一个单词的标题。
然后我想制作一个系统,我可以在其中使用一个视图来呈现所有 "Article" 模型的 body 内容。
但使用文章标题道具。为网站创建 Url。
所以如果我有 2 篇文章。
一个标题为 "About",另一个标题为 "Contact"
我最终会得到 Url 之类的
"site/About"
和
"site/Contact"
并且由于我正尝试从数据源进行此操作,因此我需要一些方法来动态执行此操作。所以我不能只为每个 artikel 制作控制器。 (反正文章多了就不好了)
我一直在尝试在 RouteConfig 中设置 mapRoute。但无论如何找不到哪个可以做到这一点。
我在网上搜索它,并尝试了这些解决方案。
URL Rewriting in .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+
但运气不好。
任何人都知道如何做到这一点,或者可以在正确的方向上帮助我。?
有很多方法可以解决这个问题,例如可以将Artikel设置为默认控制器,创建新路由,或者自定义路由等。我建议在url中包含artikel 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>
假设我有一个名为 artikel 的模型。 本文包含 Html "body" 文本。和一个单词的标题。
然后我想制作一个系统,我可以在其中使用一个视图来呈现所有 "Article" 模型的 body 内容。
但使用文章标题道具。为网站创建 Url。
所以如果我有 2 篇文章。 一个标题为 "About",另一个标题为 "Contact"
我最终会得到 Url 之类的 "site/About" 和 "site/Contact"
并且由于我正尝试从数据源进行此操作,因此我需要一些方法来动态执行此操作。所以我不能只为每个 artikel 制作控制器。 (反正文章多了就不好了)
我一直在尝试在 RouteConfig 中设置 mapRoute。但无论如何找不到哪个可以做到这一点。
我在网上搜索它,并尝试了这些解决方案。
URL Rewriting in .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+
但运气不好。 任何人都知道如何做到这一点,或者可以在正确的方向上帮助我。?
有很多方法可以解决这个问题,例如可以将Artikel设置为默认控制器,创建新路由,或者自定义路由等。我建议在url中包含artikel 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>