ここでは、MVCを扱ったブログ投稿のほとんどと、DropDownListの使用方法を調べましたがほとんど成功していません。
このリンクで投稿を模倣しようとしましたが、明らかに機能していません:ドロップダウンメニューが無効なモデル状態を引き起こしています。ASP.NET MVC 3
目的は、HTTP GET作成ビューでホームガレージが保持する車の数をユーザーが選択できるように、ドロップダウンリストを作成することです。
私が現在受け取っているエラーは次のとおりです。
コンパイラエラーメッセージ:CS1061:'MvcPropertyManagement.Models.Property'には'GarageId'の定義が含まれておらず、タイプ'MvcPropertyManagement.Models.Property'の最初の引数を受け入れる拡張メソッド'GarageId'が見つかりませんでした(ディレクティブまたはアセンブリ参照を使用しますか?)
84行目:85行目:86行目:@ Html.DropDownListFor(model => model.GarageId、Model.LkupGarageTypes)87行目:
@ Html.ValidationMessageFor(model => model.GarageType)88行目:
私のモデル:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
using MvcPropertyManagement.Models;
using MvcPropertyManagement.Models.ViewModels;
namespace MvcPropertyManagement.Models
{
public class Property
{
public bool Garage { get; set; }
[Display(Name="Garage Capacity")]
public string GarageType { get; set; }
}
コントローラ:
using System;
using System.Data;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcPropertyManagement.Models;
using MvcPropertyManagement.Models.ViewModels;
public ActionResult Create()
{
PropertyViewModel viewModel = new PropertyViewModel();
viewModel.LkUpGarageType = new SelectList(db.LkUpGarageTypes, "GarageTypeID", "LkUpGarageType");
return View(viewModel);
}
PropertyViewModel:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcPropertyManagement.Models;
namespace MvcPropertyManagement.Models.ViewModels
{
public class PropertyViewModel
{
public int? GarageId { get; set; }
public IEnumerable<SelectListItem> LkUpGarageType { get; set; }
}
}
ビューの作成:
<div class="editor-field">
@Html.DropDownListFor(model => model.GarageId, Model.LkupGarageTypes)
@Html.ValidationMessageFor(model => model.GarageType)
</div>