Asp.net mvc 使用get时Mvc路由无效

Asp.net mvc 使用get时Mvc路由无效,asp.net-mvc,razor,asp.net-mvc-routing,Asp.net Mvc,Razor,Asp.net Mvc Routing,我试图让MVC生成一个正确的url 现在的情况是这样的: 当然,它应该像这样正确地生成它: 我的全球行动计划 routes.MapRoute( name: "LiveSchedule", // Route name url: "Live/{action}/{date}", // URL with parameters defaults: new { controller = "Live", action = "Schedule", date = UrlParameter.Optional }

我试图让MVC生成一个正确的url

现在的情况是这样的:

当然,它应该像这样正确地生成它:

我的全球行动计划

routes.MapRoute(
name: "LiveSchedule", // Route name
url: "Live/{action}/{date}", // URL with parameters
defaults: new { controller = "Live", action = "Schedule", date = UrlParameter.Optional }
);
网页上触发请求的代码:

@using(Html.BeginForm("Schedule", "Live", FormMethod.Get))
{
<div>
    Specify a date: @Html.DropDownList("date", Model.SelectedDateList) <input type="submit" value="Display"/>
</div>
}

我做错了什么?

你搞混了的是,生成get url的是常规HTML,而不是ASP.NET MVC的函数

如规范(第46页;第17.13.3节)所述:

如果方法是“get”,操作是HTTP URI,则用户代理 获取action的值,在其上附加一个“?”,然后附加表单 数据集,使用“application/x-www-form-urlencoded”编码 内容类型

<form action="/Live/Schedule" method="get">                    
<div>
Select a date: <select id="date" name="date"><option value="2013-03-27">27 onsdag</option>
<option value="2013-03-28">28 torsdag</option>
<option selected="selected" value="2013-03-29">29 fredag</option>
<option value="2013-03-30">30 l&#246;rdag</option>
<option value="2013-03-31">31 s&#246;ndag</option>
...
</select> <input type="submit" value="Display"/>
</div>
</form>  
public ActionResult Schedule(string date)
{
    var model = getModel(date);
    return View(model);
}