Asp.net mvc url中的字符串参数
嗨,伙计们, 我必须在方法操作中传递一个字符串参数,因为我想用asp.net MVC在我的站点中实现标记搜索,但每次都传递一个空值 我发布了一些代码 我尝试创建一条个人路线Asp.net mvc url中的字符串参数,asp.net-mvc,Asp.net Mvc,嗨,伙计们, 我必须在方法操作中传递一个字符串参数,因为我想用asp.net MVC在我的站点中实现标记搜索,但每次都传递一个空值 我发布了一些代码 我尝试创建一条个人路线 routes.MapRoute( "TagsRoute", "Tags/PostList/{tag}", new {tag = "" } ); 查看页面中每个标记的我的RouteLink为: <% foreach (var it
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})%>,
<% } %>
问题是值标记总是空的,所以var articoli总是空的
可能我的问题是标签,我必须做一个与我的标签参数相反的路由
有人能帮我吗
注意:我使用的是ASP.NETMVC1.0,而不是2.0 您将此自定义路线定义放在何处?它应该在
默认值之前
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 }
);
}
嗨,用if(String.IsNullOrEmpty(tag))代替if(tag==“”)怎么样?谢谢!它确实有效:)那么,maproute的顺序非常重要?为什么,它是这样工作的?谢谢:)是的,订单很重要。路由是按照它们被声明的顺序进行评估的,并且第一个匹配请求url的路由被执行。好的,我理解,但这解释了为什么标记值总是空的,即使实际上我总是用RouteLink传递它?什么时候需要指定一个IRouteContaint?如果我通过一个双人赛呢?所以RouteConstraint只有当我们必须指定参数的形式而不是类型时才有用?你是说第一个MapRoute中的“tag=urlparmeter.Optional”吗?
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 }
);
}