2013-05-29 135 views
2

嗨我已经创建了一个表,并通过ADO.NET实体将其连接到MVC项目。 连接之后,我添加了实体的控制器,并在MVC项目的VIEW文件夹中创建了一组cshtml文件。 但现在我需要的是创建一个下拉列表和文本框。 我在cshtml文件中创建了下拉列表,并且还在CONTROLLER中创建了它的逻辑。 我也可以创建TEXTBOXES,但是我正在面对根据下拉列表选择弄脏TEXTBOX的问题。由VS 2012生成如何根据MVC中的下拉选择填充文本框..?

我的模型汽车是

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"; 
} 

<h2>Index</h2> 


<div> 

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

</div> 

`

现在,当我在下拉列表中选择一个项目时,它应该自动填充表中的相应值。 在我的代码中,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的计划1应该填充texbox作为1hrs

当我选择在计划2 DDL它应该填充文本框为2小时。

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

我认为jQuery是需要它.......

请帮助我,我在寻找这样的逻辑已经花了几个小时....

在此先感谢...

回答

3

首先,让我们创建一个视图模型来保存这些东西:

public class PlanViewModel 
{ 
    public List<SelectListItem> 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"; 
} 

<h2>Index</h2> 
<div> 
    @Html.DropDownList("PlanNames", Model.Plans, "--select--") 
    <input id="planHours" type="text" /> 
</div> 

然后,你需要做的jQuery中的以下内容:

<script type="text/javascript"> 
    $(function() { 
     $("[name='PlanNames']").change(function() { 
      $("#planHours").val($(this).val()); 
     }); 
    }); 
</script> 
+0

嗨mattytommo我无法理解的CurrentPlan的方法索引()...请帮助我...... – RajeshKannan

+0

@ user2309770是编辑现有计划的功能吗? – mattytommo

+0

mattytommo请你举一些例子,因为我是MVC的新手。 – RajeshKannan

相关问题