Asp.net mvc 3 如何传入选择列表并使用关联选择从id获取名称?

Asp.net mvc 3 如何传入选择列表并使用关联选择从id获取名称?,asp.net-mvc-3,razor,Asp.net Mvc 3,Razor,给定以下代码,如何在视图中选择列表项以通过id获取名称?我只想通过映射到列表id范围的本地@id变量从列表中获取名称值 这实际上与下拉列表无关……也许selectlist是用于关联查找词典的错误容器 -控制器 ViewBag.TypeId = new SelectList(db.TypeIds, "TypeId", "Name"); -看法 @* ??? Get the name by a local @id *@ <div>ViewBag.TypeId.SelectItemNa

给定以下代码,如何在视图中选择列表项以通过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... *@ 

我将在dropdownlist的onChange上使用Jquery和ajax调用

$(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);
}
如果您没有像我的示例中那样从ajax进行Post调用,请记住使用AllowGet

更新以反映评论

要获得所需内容,请使用通过ViewBag传递的字典

然后从视图中访问DictionaryViewBag.MyDictionary。
或者任何你喜欢的收藏。

我应该说得更清楚些。我只需要去掉关联的[id]=[name]值,我认为列表应该是一个简单的东西,可以像字典/集合一样进行关联01访问。我所需要做的就是抓取id并在列表中查找,选择list或collection/Hash,但我真的不知道该怎么做。这真的与DropDownList无关。如果这次理解正确,我将使用通过ViewBag传递的字典。然后从视图中访问DictionaryViewBag.MyDictionary。是的,这很好:db.TypesIds.ToDictionaryx=>x.Id,x=>x.Name;谢谢