@Url.RouteUrl 在 ASP.Net MVC 5 中为空
@Url.RouteUrl is empty in ASP.Net MVC 5
我在 ASP.Net MVC 5 中对控制器执行以下操作:
[Route("Sprache/{languageName}/Kurs/{courseName}/Text/{value}/Test/{referenzID}", Name = "Textauswahl")]
public ActionResult SelectedText(string languageName, string courseName, string value, string referenzID)
{
return View("ShowTextView");
}
但是,当我尝试通过以下方式生成 link 时,它始终是空的。
<a href="@Url.RouteUrl("Textauswahl", new { Model.Training.LanguageName, Model.Training.CourseName, Model.Training.Category ,item })">Auswählen</a>
Screenshot from Browser
这是我的路由配置:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
来自 Url.RouteUrl
的空响应表示没有路由与您提供的参数匹配。传递路由名称只会将匹配条件缩小到特定路由,但所有路由值仍必须存在(显式传递或在当前 HTTP 请求中传递)才能生成 URL。
请注意,您使用的语法不正确。传递给 RouteUrl
的值必须同时具有键和值,或者传递的变量名称必须与路由中使用的路由键匹配。
<a href="@Url.RouteUrl("Textauswahl", new {
languageName = Model.Training.LanguageName,
courseName = Model.Training.CourseName,
value = Model.Training.Category,
referenzID = item })">Auswählen</a>
我在 ASP.Net MVC 5 中对控制器执行以下操作:
[Route("Sprache/{languageName}/Kurs/{courseName}/Text/{value}/Test/{referenzID}", Name = "Textauswahl")]
public ActionResult SelectedText(string languageName, string courseName, string value, string referenzID)
{
return View("ShowTextView");
}
但是,当我尝试通过以下方式生成 link 时,它始终是空的。
<a href="@Url.RouteUrl("Textauswahl", new { Model.Training.LanguageName, Model.Training.CourseName, Model.Training.Category ,item })">Auswählen</a>
Screenshot from Browser
这是我的路由配置:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
来自 Url.RouteUrl
的空响应表示没有路由与您提供的参数匹配。传递路由名称只会将匹配条件缩小到特定路由,但所有路由值仍必须存在(显式传递或在当前 HTTP 请求中传递)才能生成 URL。
请注意,您使用的语法不正确。传递给 RouteUrl
的值必须同时具有键和值,或者传递的变量名称必须与路由中使用的路由键匹配。
<a href="@Url.RouteUrl("Textauswahl", new {
languageName = Model.Training.LanguageName,
courseName = Model.Training.CourseName,
value = Model.Training.Category,
referenzID = item })">Auswählen</a>