将下拉列表的值作为字符串 ASP.NET MVC

getting the value of dropdownlist as a string ASP.NET MVC

我有以下代码:

@Html.DropDownList("jenisBarang", new SelectList(ViewBag.listJenis), "Pilih Perangkat/Layanan", new { @class = "form-control", @id = "ddlJenis", @onchange = "GetMerk(this.value);", @name="jenisBarang" })
@Html.DropDownList("merkBarang", new SelectList("pilih Merk"), "Pilih Merk", new { @class = "form-control", @id = "ddlMerk", @name = "jenisBarang" })


第二个下拉列表包含一些基于我从第一个下拉列表中选择的字符串。
例如:

当我将它发送到我的操作时,它显示为整数 (0)。
如何将下拉列表的值作为字符串获取? (例如我选择了一个)

编辑: 这是操作第二个下拉菜单的代码:

<script language="javascript" type="text/javascript">
    function GetMerk(_jenis) {
        var procemessage = "<option value='0'> Please wait...</option>";
        $("#ddlMerk").html(procemessage).show();
        var url = "/Barang/GetMerkByJenis/";

        $.ajax({
            url: url,
            data: { jenisID: _jenis },
            cache: false,
            type: "POST",
            success: function (data) {
                var markup = "<option value='0'>Select Merk</option>";
                for (var x = 0; x < data.length; x++) {

                    markup += "<option value=" + x + ">" + data[x]+ "</option>";
                }
                $("#ddlMerk").html(markup).show();
            },
            error: function (reponse) {
                alert("error : " + reponse);
            }
        });

    }
</script>

在你的 JS 代码中,在循环中,你绑定到 select option 的值你的迭代变量 - x,它是数字,所以它将传递整数到控制器。如果你想传递文本,你应该绑定到 value data[x] 而不是 x:

. . .
for (var x = 0; x < data.length; x++) {
    markup += "<option value=" +  data[x] + ">" + data[x]+ "</option>";
}
. . .

您正在向服务器发送一个整数。因此,您的控制器收到了第二个下拉列表的整数值,让我们看看您的代码

var markup = "<option value='0'>Select Merk</option>";
                for (var x = 0; x < data.length; x++) {

                    markup += "<option value=" + x + ">" + data[x]+ "</option>";
                }

如果你想得到文本,它应该是这样的

var markup = "<option value=''>Select Merk</option>";
                for (var x = 0; x < data.length; x++) {

                    markup += "<option value=" + data[x] + ">" + data[x]+ "</option>";
                }

你的javascript有问题,如果你想在你的操作方法中获取下拉文本
请用以下内容替换您的代码

<script language="javascript" type="text/javascript">
function GetMerk(_jenis) {
    var procemessage = "<option value='0'> Please wait...</option>";
    $("#ddlMerk").html(procemessage).show();
    var url = "/Home/GetMerkByJenis/";

    $.ajax({
        url: url,
        data: { jenisID: _jenis },
        cache: false,
        type: "POST",
        success: function (data) {
            var markup = "<option value='0'>Select Merk</option>";
            for (var x = 0; x < data.length; x++) {

                markup += "<option value=" + data[x] + ">" + data[x] + "</option>";
            }
            $("#ddlMerk").html(markup).show();
        },
        error: function (reponse) {
            alert("error : " + reponse);
        }
    });

}