Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在MVC中基于下拉选择填充文本框。。?_C#_Jquery_Asp.net Mvc_Asp.net Mvc 4_Razor - Fatal编程技术网

C# 如何在MVC中基于下拉选择填充文本框。。?

C# 如何在MVC中基于下拉选择填充文本框。。?,c#,jquery,asp.net-mvc,asp.net-mvc-4,razor,C#,Jquery,Asp.net Mvc,Asp.net Mvc 4,Razor,您好,我已经创建了一个表,并通过ADO.NET实体将其连接到MVC项目。 连接之后,我为实体添加了控制器,它在MVC项目的视图文件夹中创建了一组cshtml文件。 但现在我需要的是创建一个dropdownlist和textbox。 我在cshtml文件中创建了dropdownlist,并在控制器中为其编写了逻辑。 我也可以创建文本框,但我面临的问题是根据dropdownlist选择来填充文本框 我的VS 2012自动生成的模型是 public partial class Plan_S

您好,我已经创建了一个表,并通过ADO.NET实体将其连接到MVC项目。 连接之后,我为实体添加了控制器,它在MVC项目的视图文件夹中创建了一组cshtml文件。 但现在我需要的是创建一个dropdownlist和textbox。 我在cshtml文件中创建了dropdownlist,并在控制器中为其编写了逻辑。 我也可以创建文本框,但我面临的问题是根据dropdownlist选择来填充文本框

我的VS 2012自动生成的模型是

 public partial class Plan_S  

    {

        public int PlanId_PK { get; set; }
        public string PlanNames { get; set; }
        public string Hours { get; set; }
    }
我的显示下拉列表的控制器是 `

显示dropdownlist的My view.cshtml是

`

在这个计划表中

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

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

这是我需要的逻辑,我可以在asp webforms中实现,但在MVC中这很棘手

我认为Jquery是需要的

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


首先,让我们创建一个视图模型来保存以下内容:

public class PlanViewModel
{
    public List<SelectListItem> Plans { get; set; }
}
那么,在您看来,请执行以下操作:

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

<h2>Index</h2>
<div>   
    @Html.DropDownList("PlanNames", Model.Plans, "--select--")
    <input id="planHours" type="text" />
</div>
@model Pivot.Models.Plan\u
@{
ViewBag.Title=“Index”;
}
指数
@Html.DropDownList(“PlanNames”,Model.Plans,“--select--”)
然后,您需要在jQuery中执行以下操作:

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

$(函数(){
$(“[name='PlanNames']”)。更改(函数(){
$(“#planhurs”).val($(this.val());
});
});

Hi mattytomo我无法理解方法索引()中的当前计划…请在这方面帮助我…@user2309770您的页面的用途是什么?是编辑计划还是创建计划?或者只显示信息?单击dropdownlist中的Plan1,文本框应填充表中相应的值。在这里,单击Plan1,文本框应填充为1小时,如我的问题中所示。@user2309770检查我的更新编辑。我以为你在编辑一个计划,而不仅仅是展示信息。新代码将为您提供这一点。@user2309770我猜您在这两方面都得到了时间和成本是吗?
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>
<script type="text/javascript">
    $(function () {
        $("[name='PlanNames']").change(function () {
            $("#planHours").val($(this).val());
        });
    });
</script>