我已经浏览了这里处理 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);
}
属性视图模型:
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>