将下拉列表的值作为字符串 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" })
第二个下拉列表包含一些基于我从第一个下拉列表中选择的字符串。
例如:
- 一个
- b
- c
当我将它发送到我的操作时,它显示为整数 (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);
}
});
}
我有以下代码:
@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" })
第二个下拉列表包含一些基于我从第一个下拉列表中选择的字符串。
例如:
- 一个
- b
- c
当我将它发送到我的操作时,它显示为整数 (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);
}
});
}