Hy Guys, 我必须在方法操作中传递一个字符串参数,因为我想在我的站点中使用asp.net MVC实现标签搜索,但每次操作时都会传递一个空值。
我发布了一些代码!
我尝试创建个人路线。
routes.MapRoute(
"TagsRoute",
"Tags/PostList/{tag}",
new {tag = "" }
);
每个标签的视图页面中的我的RouteLink是:
<% foreach (var itemtags in item.tblTagArt) {%>
<%= Html.RouteLink(itemtags.Tags.TagName,"TagsRoute",
new {tag=itemtags.Tags.TagName})%>,
<% } %>
我的方法操作是:
public ActionResult PostList(string tag)
{
if (tag == "")
{
return RedirectToAction("Index", "Home");
}
else
{
var articoli = artdb.GetArticoliByTag(tag);
if (articoli == null)
{
return RedirectToAction("Index", "Home");
}
return View(articoli);
}
}
问题是值标记始终为空,因此var articoli始终为空!
可能我的问题是标签我必须制作与我的标签参数相反的路线。
任何人都可以帮助我?
N.B我使用的是ASP.NET MVC 1.0而不是2.0!
答案 0 :(得分:4)
您在哪里放置此自定义路线定义?它应该之前 Default
。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"TagsRoute",
"Tags/PostList/{tag}",
new { controller = "Tags", action = "PostList", id = UrlParameter.Optional }
);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Users", action = "Index", id = UrlParameter.Optional }
);
}