[英]Routing in ASP.Net core 2 MVC
我現在已經在MVC上工作了大約1年,但實際上並不需要深入研究路由,而只是使用常規的Defaults。 在一個新的應用程序中,我現在需要調整這些內容,並且無法弄清楚它是如何工作的。
我的處境我有一個應用程序,該應用程序從一個視圖開始,該視圖帶有數據庫中不同日歷的列表。 這些日歷中的每個日歷都應具有如下網址:
家庭/日歷名稱/周數
->基於日歷名稱的控制器/動態字符串/基於所選星期的動態int
問題是我不想為每個CalendarName->日歷創建一個動作。
我的問題可以理解嗎?
這是我的Startup.cs代碼atm:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "test",
template: "test",
defaults: new { controller = "Home", action = "Name-Of-Calender", id="WeekID_Of_Calendar" });
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=KalenderListe}/{id?}");
});
這是View atm中的URL-Action。
"@Url.Action("View", "Home", new {KalenderName= kalender.KalenderName,Id= kalender.KalenderId})"
如果不清楚我要做什么,請告訴我,我會進行調整。 提前致謝。
對於您的問題,可以在操作方法上使用屬性路由。 只需像下面這樣在您的路由中寫入字符串
`
[Route("Home/About")]
public IActionResult MyAbout()
{
return View("About");
}
[Route("Home/Contact")]
public IActionResult MyContact()
{
return View("Contact");
}
`
您也可以根據需要進行更改
`
[Route("About/Home")]
public IActionResult MyAbout()
{
return View("About");
}
`
您可以在家庭控制器中的操作上使用屬性路由。
[HttpGet("{calendarName}/{id}")]
public void ActionResult GetCalendar(string calendarName, int id)
{
...
}
或者,如果您希望將傳遞為可選查詢
[HttpGet("{calendarName}")]
public void ActionResult GetCalendar(string calendarName, [FromQuery]int id)
{
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.