如何使用MVC,Jquery和Ajax将下拉列表中的选定值发送到控制器

时间:2015-11-04 10:33:15

标签: jquery asp.net-mvc

我需要使用jquery从下拉列表中获取所选值。然后我想将此选定值发送到我的控制器中的Action Result Method,可能使用Ajax调用。由于我是新手,我不太确定如何实现这一目标。 所以我在我的控制器中有一个像这样的动作方法...

public ActionResult GetVehiclePart(string id)
{
    //i did like to send the selected value to this controller and filter data  like below
    var _partNumber = _catalogue.CatalogueData.FirstOrDefault(x => x.Partnumber == id && x.Veh_ID == selectedValue);
    return PartialView("_Vehicle", _partNumber)
}

在我的脚本文件`

//getting the value using jquery
var vehicle = $("#ModelResult").val();
$.ajax({
    type: 'GET',
    url: '../../VehiclesController/GetVehiclePart/' + vehicle,
    dataType: 'json',
    success: function(data) {
        vehicle = $("#ModelResult").val();
        console.log(vehicle); // the value is printing here not sure how to post it to the controller
    },
    async: false
});

我可能在这里做错了,但是如果有人会帮助如何实现

1 个答案:

答案 0 :(得分:2)

您的网址不正确(除非您确实拥有名为VehiclesControllerController的控制器),dataType选项也是如此。将你的ajax调用改为

$.ajax({
    type: 'GET',
    url: '@Url.Action("GetVehiclePart", "Vehicles")', // don't hard code your urls
    data: { id: $("#ModelResult").val() }, // pass the value to the id parameter
    dataType: 'html', // your returning a view, not json
    success: function(data) {
        // do something with the partial view you return?
        $(someElement).html(data);
    });
});

附注:控制器方法中的查询是基于id值和selectedValue过滤数据。它不清楚selectedValue指的是什么。如果要将2个值传递给控制器​​,则可以使用

data: { id: $("#ModelResult").val(), selectedValue: anotherValue },

并将您的方法更改为

public ActionResult GetVehiclePart(string id, string selectedValue)