在mvcentity framework中的下拉列表选择中填充文本框

我正在使用Asp.net MVC5和Entity Framework。我是两种技术的新手。

基本上我创建一个表单,当我从DropDown中选择值时,在此表单中可以使用DropDown。 我想填写此表单上也提供的文本框。

这是我的控制器

public class ChainController : Controller { private hcEntities db = new hcEntities(); // GET: Chain public ActionResult Index() { ViewBag.name = new SelectList(db.chains,"code","name"); return View(db.chains.ToList()); } } 

视图:-

 

@Html.DropDownList("name" , null, new { @class = "form-control" })
@using (@Html.BeginForm()) { @Html.AntiForgeryToken()
@Html.TextBox("ChainName", null, new { @class = "form-control" }) //WHAT DO I DO HERE???????
}

模型(由EF生成的chain.cs)

 public partial class chain { public long chain_id { get; set; } public string name { get; set; } public string code { get; set; } public string username { get; set; } public string password { get; set; } public long created_by { get; set; } public System.DateTime created_on { get; set; } public Nullable updated_by { get; set; } public Nullable updated_on { get; set; } public chain() { created_by = 1; created_on = DateTime.Now; } } 

我不知道下一步会是什么。 如何从选择下拉列表中填充具有Username值的文本框。 我在stackoverflow中找到了太多的答案,但我填写这些对我没有帮助。 例如,在mvc中选择下拉列表 填充文本框 , 如何根据MVC中的下拉列表选择填充文本框..?

帮我 !

您可以将选择列表参数从“代码”更改为“用户名”,并在视图上使用一些jQuery代码。 我为你创建了一个简单的例子,请看一下:

在我的控制器中:

 List tempLIst = new List(); tempLIst.Add(new temp() { Id = 1, code = "111", name = "first", username = "user first" }); tempLIst.Add(new temp() { Id = 1, code = "222", name = "second", username = "user second" }); tempLIst.Add(new temp() { Id = 1, code = "333", name = "third", username = "user third" }); tempLIst.Add(new temp() { Id = 1, code = "444", name = "four", username = "user four" }); ViewBag.name = new SelectList(tempLIst, "username", "name"); return View(); 

这里temp是具有属性的类(Id,代码,名称和用户名)

在我看来

 
temp list: @Html.DropDownList("name",(IEnumerable)@ViewBag.name,"select value") @Html.TextBox("txtValue")

这是我在此视图页面上使用的一些脚本部分。

   

现在,当您运行此代码段时,文本框值将根据所选下拉列表的值进行更改。

我是靠自己做的。 这是解决方案。

以前的代码有些变化

调节器

我使用ViewData而不是ViewBag。 两者都工作得很好,但我使用ViewData

  // GET: Chains public ActionResult Index() { ViewData["chain_name"] = new SelectList(db.chains, "code", "name"); return View(db.chains.ToList()); } 

我也在控制器中创建一个从数据库中获取数据的函数

  //Action Function [HttpPost] public ActionResult Action(string code) { var query = from c in db.chains where c.code == code select c; return Json(query); } 

之后我通过javascript在我的视图中调用此Action Controller。

视图

  @using (@Html.BeginForm("Action","chains", FormMethod.Post)) { @Html.AntiForgeryToken() 

@Html.DropDownList("ddlchainname", (SelectList)ViewData["chain_name"], new { onchange = "Action(this.value);", @class = "form-control" })
@Html.TextBox("ChainName", null, new { @class = "form-control" })
@Html.TextBox("username", null, new { @class = "form-control" })
@Html.TextBox("ChainCode", null, new { @class = "form-control" })
}

Javascript函数调用bydowndown onChange

  

这很好……