Asp.net mvc url中的字符串参数

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

嗨,伙计们, 我必须在方法操作中传递一个字符串参数,因为我想用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})%>,    
<% } %>
问题是值标记总是空的,所以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 }
    );
}