如何根据MVC中的下拉选择填充文本框..?

您好我已经创建了一个表并通过ADO.NET实体将其连接到MVC项目。 连接后,我为实体添加了控制器,并在MVC项目的VIEW文件夹中创建了一组cshtml文件。 但现在我需要的是创建一个下拉列表和文本框。 我在cshtml文件中创建了下拉列表,并且还在CONTROLLER中修改了它的逻辑。 我也可以创建TEXTBOXES,但是我面临着根据下拉列表选择对TEXTBOX进行打包的问题。

我的VS自动生成的模型是

public partial class Plan_S { public int PlanId_PK { get; set; } public string PlanNames { get; set; } public string Hours { get; set; } } 

我的用于显示下拉列表的控制器是`

  public class dropdownController : Controller { private PivotEntities db = new PivotEntities(); // // GET: /dropdown/ public ActionResult Index() { ViewBag.plannames = new SelectList(db.Plan_S, "PlanId_PK", "PlanNames"); return View(); } protected override void Dispose(bool disposing) { db.Dispose(); base.Dispose(disposing); } public ActionResult ddl() { return View(new Plan_S()); } }` 

我用于显示下拉列表的view.cshtml是

`

 @model Pivot.Models.Plan_S @{ ViewBag.Title = "Index"; } 

Index

@Html.DropDownList("PlanNames", "--select--")

`

现在当我在下拉列表中选择一个项目时,它应该自动填充表格中的相应值。 在我的代码中,Plan_S表自动生成为Plan_S MODEL Class。 但是在数据库中,我在表格中为这些列设置了值。

 eg..) PlanId_PK | PlanNames | Hours 1 Plan1 1hrs 2 Plan2 2hrs 3 Plan3 3hrs 

在这个Plan_S表中,

PlanNames列填充在DROPDOWNLIST中,当我在DDL中选择Plan1时,它应该将texbox填充为1小时

当我在DDL中选择Plan2时,它应该将文本框填充为2小时。

这是我需要的逻辑,我可以在asp webforms中做到这一点,但在MVC中它很棘手。

我觉得它需要Jquery …….

请帮帮我,我花了好几个小时找到这个逻辑……

提前致谢…

首先,让我们创建一个View Model来保存这些东西:

 public class PlanViewModel { public List Plans { get; set; } } 

然后,在你的控制器动作中让我们构建模型:

 public ActionResult Index() { var model = new PlanViewModel(); model.Plans = db.Plan_S .Select(p => new SelectListItem { Value = p.Hours, Text = p.PlanNames }) .ToList(); return View(model); } 

然后在您的视图中,执行:

 @model Pivot.Models.Plan_S @{ ViewBag.Title = "Index"; } 

Index

@Html.DropDownList("PlanNames", Model.Plans, "--select--")

然后你需要在jQuery中执行以下操作: