我有一个具有id stakeHolderName01的下拉列表。我想在点击按钮时获取下拉列表中的值。因为我正在编写代码如下。我是一个学习者,我从一些网站获得此代码。我在控制器中获取值我不知道如何将值从控制器传递到视图。谁能帮我 ?我是MVC的新手
这是我从我的控制器获取值的Javascript代码
function DropDownLoad() {
{
alert("");
$.ajax({
url: '@Url.Action("Dropdown", "JointCompany")',
type: "GET",
success: function (jpoc) {
$("stakeHolderName01").append(jpoc.Values);
}
});
}
}
这是我的控制器和我的类名称jointcompanyviewmodel,其对象是jpoc
public JsonResult Dropdown(JointCompanyViewModel jpoc)
{
jpoc.DropDownValues();
return Json(jpoc, JsonRequestBehavior.AllowGet);
}
这是我的模型Jointcompanymodel,在此我从WCF服务对象名称获取数据是Proxy。这里的每件事都很好。
public List<JointCompanyViewModel> DynamicDropDown()
{
var result = Proxy.GetJOCStakeHolder();
List<JointCompanyViewModel> obj = new JavaScriptSerializer().Deserialize<List<JointCompanyViewModel>>(result);
return obj;
}
public List<SelectListItem> Values { get; set; }
public List<SelectListItem> DropDownValues()
{
var obj = DynamicDropDown();
List<SelectListItem> lst = new List<SelectListItem>();
foreach (var items in obj)
{
lst.Add(new SelectListItem { Text = items.Name, Value = items.ID });
}
Values = lst;
return Values;
}
答案 0 :(得分:1)
我认为这就是你想要的:
在您的控制器操作中,您希望将方法调用jpoc.DropDownValues()
的结果存储到变量中,并从控制器操作返回该变量:
public JsonResult Dropdown(JointCompanyViewModel jpoc)
{
var result = jpoc.DropDownValues();
return Json(result, JsonRequestBehavior.AllowGet);
}
然后在客户端,你的ajax调用将收到你的控制器动作的结果,这是一个对象列表:
function DropDownLoad() {
{
alert("");
$.ajax({
url: '@Url.Action("Dropdown", "JointCompany")',
type: "GET",
success: function (jpoc) {
$("#stakeHolderName01").append(jpoc);
}
});
}
}
请记住,您需要调用javascript函数DropDownLoad()
来调用您的ajax调用并让它检索您的控制器操作的结果。
此外,您的ajax调用成功回调中的当前逻辑还不足以更新您的下拉列表。然后,您需要考虑如何执行此操作,这实际上取决于您使用的下拉类型。如果它像<id="stakeHolderName01" select></select>
那样你可以这样做:
var jpoc = [{
Text: "option 1",
Value: 1
}, {
Text: "option 2",
Value: 2
}]
// put this inside your success callback
for (var i in jpoc) {
var x = jpoc[i];
$('#stakeHolderName01').append('<option value="' + x.Value + '">' + x.Text + '</option>');
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="stakeHolderName01"></select>
&#13;