获取DropDownListFor选择的值到Ajax.ActionLink调用

时间:2013-12-06 13:49:50

标签: c# asp.net asp.net-mvc asp.net-mvc-4 asp.net-mvc-5

如何将DropDownListFor所选值添加到ActionLink路由值(OrderId)?

@Html.DropDownListFor(model => model.CustomerId, new SelectList(Model.Orders, "OrderId", "Total"))

@Ajax.ActionLink("View Order", "OrderDetails", 
    new 
    { 
        OrderId = 1 // Dropdown value here!
    },
    new AjaxOptions() 
    {
        HttpMethod = "GET",
        UpdateTargetId = "OrderDetailsDiv",
        InsertionMode = InsertionMode.Replace
    })

<div id="OrderDetailsDiv"></div>

我正在使用MVC 5.

1 个答案:

答案 0 :(得分:1)

你能把你的下拉列表和链接放在AjaxForm中吗?

@using (Ajax.BeginForm("OrderDetails", new AjaxOptions { UpdateTargetId = "OrderDetailsDiv" }))
{ 
    @Html.DropDownListFor(model => model.CustomerId, new SelectList(Model.Orders, "OrderId", "Total"))
    <input type="submit" value="View Order" />
}

你将有一个名为OrderDetails的控制器方法,它接受一个模型对象,其中包含一个名为CustomerId的属性。

有关AjaxForms和模型的更多信息,请参阅此答案:Using Ajax.BeginForm with ASP.NET MVC 3 Razor

有关详细信息:http://geekswithblogs.net/blachniet/archive/2011/08/03/updating-partial-views-with-unobtrusive-ajax-in-mvc-3.aspx

否则,我会使用JavaScript / jQuery发布帖子,您可以在发出请求之前检索下拉值。