В файле Views/Home/Index.cshtml напишем код:
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<!-- head -->
<head>
<meta name="viewport" content="width=device-width" />
<title>Page</title>
</head>
<!-- body -->
<body>
<br /><br /> Вариант1 <br />
@Url.Action()
<!-- будет сгенерирован текст
/Home/Index
Home это контроллер данного(текущего) View
Index это action данного(текущего) View
-->
<br /><br /> Вариант2 <br />
@Url.Action("Show" /*action*/)
<!-- будет сгенерирован текст
/Home/Show
Home это контроллер данного(текущего) View
-->
<br /><br /> Вариант3 <br />
@Url.Action("Show" /*action*/, new { author = "Monte Kristo", id = 10 } /*route*/)
<!-- будет сгенерирован текст
/Home/Show/10?author=Monte Kristo
Home это контроллер данного(текущего) View
/Home/Show/10 это controller/action/id такой путь записан в маршрутизаторе файл RouteConfig.cs (объяснение ниже)
-->
<br /><br /> Вариант4 <br />
@{
RouteValueDictionary dict4 = new RouteValueDictionary();
dict4["author"] = "Monte Kristo";
}
@Url.Action("Show" /*action*/, dict4 /*route*/)
<!-- будет сгенерирован текст
/Home/Show?author=Monte Kristo
Home это контроллер данного(текущего) View
-->
<br /><br /> Вариант5 <br />
@Url.Action("Show" /*action*/, "MyController1" /*controller*/)
<!-- будет сгенерирован текст
/MyController1/Show
-->
<br /><br /> Вариант6 <br />
@Url.Action("Show" /*action*/, "MyController1" /*controller*/, new { author = "Monte Kristo", id = 10 } /*route*/)
<!-- будет сгенерирован текст
/MyController1/Show/10?author=Monte Kristo
/MyController1/Show/10 это controller/action/id такой путь записан в маршрутизаторе файл RouteConfig.cs (объяснение ниже)
-->
<br /><br /> Вариант7 <br />
@{
RouteValueDictionary dict7 = new RouteValueDictionary();
dict7["author"] = "Monte Kristo";
}
@Url.Action("Show" /*action*/, "MyController1" /*controller*/, dict7 /*route*/)
<!-- будет сгенерирован текст
/MyController1/Show?author=Monte Kristo
-->
<br /><br /> Вариант8 <br />
@Url.Action("Show" /*action*/, "MyController1" /*controller*/, new { author = "Monte Kristo", id = 10 } /*route*/, "https" /*protocol*/)
<!-- будет сгенерирован текст
/MyController1/Show/10?author=Monte Kristo
https://localhost/MyController1/Show/10 это controller/action/id такой путь записан в маршрутизаторе файл RouteConfig.cs (объяснение ниже)
-->
<br /><br /> Вариант9 <br />
@{
RouteValueDictionary dict8 = new RouteValueDictionary();
dict8["author"] = "Monte Kristo";
}
@Url.Action("Show" /*action*/, "MyController1" /*controller*/, dict8 /*route*/, "https" /*protocol*/)
<!-- будет сгенерирован текст
https://localhost/MyController1/Show?author=Monte Kristo
-->
<br /><br /> Вариант10 <br />
@{
RouteValueDictionary dict10 = new RouteValueDictionary();
dict10["author"] = "Monte Kristo";
}
@Url.Action("Show" /*action*/, "MyController1" /*controller*/, dict10 /*route*/, "https" /*protocol*/, "bbbbb" /*hostName*/)
<!-- будет сгенерирован текст
https://bbbbb/MyController1/Show?author=Monte Kristo
-->
</body>
</html>
На заметку!
C#
new { author = "Monte Kristo", id = 10 }
это объект с анонимным (отсутствующим) типом в C# ...
C#
Имя маршрута это параметр name в файле App_Start\RouteConfig.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
namespace WebApp1
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "aaa",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
}
На заметку!
C#
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
это объект с анонимным (отсутствующим) типом в C# ...