如何传入SelectList并使用关联选择从id获取名称



给定以下代码,我如何在视图中选择列表项以通过id获得名称?我只是想通过映射到列表id范围的本地@id变量从列表中获取名称值。

这真的与下拉菜单无关…也许selectlist是错误的容器关联查找字典?

——控制器

ViewBag.TypeId = new SelectList(db.TypeIds, "TypeId", "Name");

——视图

@* ??? Get the name by a local @id  *@
<div>ViewBag.TypeId.SelectItemNameById(@id)</div>  @* Bad psuedo code here... *@ 

我将使用Jquery和ajax调用下拉列表的onChange

$(document).ready(function () {
  $("#MyDrop").change(function () { GetValue("#MyDrop"); });
});
function GetValue(objSource) {
var url = '/Home/Index/GetValue/';
$.getJSON(url, { id: $(objSource).val() }, function (data) {       
      //with data returned fill your fields
    });
});

}

从控制器

public ActionResult GetValue(string id)
{
  int intId = 0;
  int.TryParse(id, out intId);
  var myData = //Get the value from Id
  return Json(myData, JsonRequestBehavior.AllowGet);
}

记住使用AllowGet,如果你不做一个Post调用从你的ajax(如在我的例子)

更新以反映注释

要实现你需要使用字典通过ViewBag传递。

然后从视图中访问(字典)ViewBag.MyDictionary。或者任何你喜欢的集合

最新更新