мне удалось получить мой проект MVC представить список новостей в SEO дружественной манере:MVC маршрутизации Новости Страницы
/Новости/- представить список
/Новости/статьи новостей/ID/Новости-пункт-название - индивидуальная новость
То, что я действительно хотел бы это:
Новости/ID/Новости-пункт-синица le
Точно, как Stackoverflow представляет свои вопросы.
Однако, похоже, я не знаю, как сделать маршрутизацию, чтобы различать два действия с тем же именем действия контроллера (Index).
Любые предложения будут оценены.
EDIT:
Вот мои маршруты конфигурации:
routes.MapRoute(
"News",
"News/NewsItem/{newsId}/{newsTitle}",
new { controller = "News", action = "NewsItem", newsTitle = UrlParameter.Optional },
new { newsId = @"\d+" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "SkipHire", action = "Index", id = UrlParameter.Optional }
);
EDIT 2:
Это то, что я изменен все, чтобы:
Маршрут
routes.MapRoute(
"News",
"{controller}/{id}/{newsTitle}",
new { action = "NewsItem", newsTitle = UrlParameter.Optional }
);
Контроллер
public class NewsController : Controller
{
public ActionResult Index()
{
var q = _ctx.tblNews.OrderBy(x => x.newsCreateDate)
.Where(x => x.WebsiteID == 2).ToList();
return View(q);
}
public ActionResult NewsItem(int newsId, string newsTitle)
{
return View();
}
}
View - Index (сегмент)
<table>
@foreach (var x in Model)
{
<tr>
<td>@Html.ActionLink(x.newsTitle, "NewsItem", new { newsId = x.newsID, newsTitle = x.newsTitle.ToSeoUrl() })
</td>
</tr>
}
</table>
ActionLink производит: Новости/статьи новостей NewSID = 3 & newsTitle = мой-новости-пункт
Я хочу: Новости/3?/my-news-item
Вы можете показать свою текущую конфигурацию маршрута? – TSmith