我正在独自学习ASP.NET MVC,并构建了一个从视频教程和阅读书籍中学到的示例Web应用程序。我正在使用现有数据库首先使用代码来构建Web应用程序。使用Viewbag时,一切工作正常。当我尝试将viewbag更改为viewmodel时,我的代码开始中断。我的模型如下所示:
public partial class APPET1
{
[Column("Doc Number")]
[StringLength(255)]
public string Doc_Number { get; set; }
[StringLength(255)]
public string CCode { get; set; }
public DateTime? Date { get; set; }
[StringLength(255)]
public string Remark { get; set; }
public int? StatusID { get; set; }
public virtual Status Status { get; set; }
}
我的看法:
<table>
<tr>
@using (Html.BeginForm("Index", "APPET1", FormMethod.Get))
{
<td>
<tr>
<td width="200px"> <label>Search Everything </label></td>
<td> @Html.TextBox("Search", null)</td>
<td width="200px"><label>Search Document Number Only </label></td>
<td>@Html.TextBox("DocNumber", null)</td>
</tr>
<tr>
<td width="200px"><label>Remark Contains </label></td>
<td>@Html.TextBox("Remark", null)</td>
<td>Status</td>
<td>@Html.DropDownListFor(t=>t.Status, Model.Statuses, "Select Status")</td>
</tr>
</td>
<tr>
<td><button type="submit" class="btn btn-primary" style="font-weight:bold">Search</button></td>
..........some more codes .............
}
</tr>
</table>
在我的ViewModel中,我添加了:
public string Status { get; set;}
public IEnumerable<SelectListItem> Statuses { get; set; }
我知道我错过了一些东西,但无法弄清楚是什么。我读了许多stackoverflow的帖子,现在到了那个时候,您一直在看一个单词,而且它的拼写开始看起来很奇怪。根据我阅读的文章和文章,我遇到了“值不能为null。参数名称:items”错误或“没有类型为'IEnumberable'的ViewData项”错误。你们中的一位专家可以指出我需要做些什么才能使我的下拉列表正常工作。任何帮助都感激不尽。
相关分类