Action方法Param始终为null

时间:2012-03-30 21:35:10

标签: asp.net-mvc-3

我无法弄清楚为什么当它命中我的action方法时,carFileName为null。我调试了视图,当我遍历那个foreach循环时,对于carContent.CarFileName,在该循环的每次迭代中确实存在不同的值。因此,对于提交时的每个按钮,它应该提交与该特定按钮关联的carFileName。

@if (Model.CarFiles != null && Model.CarnFiles.Count > 0)
{
    @foreach (CarContent carContent in Model.CarFiles)
    {
        using (Html.BeginForm("GetfileDownloadUrl", "Car", FormMethod.Get, new { carId = Model.CarId, userId = Model.UserId, @carFileName = carContent.CarFileName }))
        {
            @Html.Hidden("userId", Model.UserId);
            @Html.Hidden("carId", Model.CarId);
            @Html.Hidden("carFileName", carContent.CarFileName);        
            <p><input type="submit" name="SubmitCommand" value="download" /> @carContent.Name</p>
        }
    }
}

这是我的动作方法签名:

[HttpGet]
public string GetFilDownloadUrl(string carFileUrl, int carId, int userId)
{
           ...
}

这是路线:

routes.MapRoute("CarDownloadFile", "Cars/{carId}/{userId}/{carFileName}", new { controller = "Car", action = "GetFileDownloadUrl", carnId = UrlParameter.Optional, userId = UrlParameter.Optional, carFileName = UrlParameter.Optional });   

1 个答案:

答案 0 :(得分:0)

可能是因为在您的路线中,您引用的是carFileName,但您的操作方法需要carFileUrl,而您的RouteValueDictionary中的carId拼写为carnId