2

こんにちは、テーブルを作成し、ADO.NET エンティティを介して MVC プロジェクトに接続しました。接続後、エンティティのコントローラーを追加すると、MVC プロジェクトの VIEW フォルダーに一連の cshtml ファイルが作成されます。しかし今、私が必要としているのは、ドロップダウンリストとテキストボックスを作成することです. cshtml ファイルにドロップダウン リストを作成し、そのロジックを CONTROLLER に記述しました。TEXTBOXES を作成することもできますが、ドロップダウン リストの選択に基づいて TEXTBOX を作成するという問題に直面しています。

VS 2012によって自動生成された私のモデルは

 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 で Plan1 を選択すると、texbox に 1 時間として入力する必要があります。

DDL で Plan2 を選択すると、テキスト ボックスに 2 時間として入力する必要があります。

これは私が必要とするロジックであり、ASP Webフォームでこれを行うことができますが、MVC では注意が必要です。

それにはJqueryが必要だと思います.......

私を助けてください、私はこのロジックを見つけるのに何時間も費やしました....

前もって感謝します...

4

1 に答える 1

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>
于 2013-05-29T13:07:20.137 に答える