我有一个基本的 asp.net mvc web 应用程序。它与我的数据库相连,其中有许多记录。我需要它在页面顶部有一个过滤器选项和一个搜索名称的搜索文本框。过滤器框应该是一个包含所有列名称和选择的选项的下拉框,与该选项相关的所有记录都显示在主索引页面上。我试过这样做,但它给了我错误。我附加了以下内容:DataFormsController(索引方法)、索引 html 页面和 .models 页面以及我在运行应用程序时遇到的错误。如果有人可以帮助我,我将不胜感激。谢谢!!!RiskApplication.models 代码:using System.Collections.Generic;//using Microsoft.AspNetCore.Mvc.Rendering;using System.Web.Mvc;namespace RiskApplication.Models{ public class RiskApplicationModel { public List<DataForm> dataForms; public SelectList owners; public string department { get; set; } }}index.cshtml: @model IEnumerable<RiskApplication.Models.DataForm>@{ ViewBag.Title = "Index";}<h2>RiskPrescreen Application 2018</h2><p> @Html.ActionLink("Create New", "Create")</p><form asp-controller="DataForms" asp-action="Index" method="get"> <p> <select asp-for="department" asp-items="Model.owners"> <option value="">All</option> </select> Application Name: <input type="text" name="SearchString"> <input type="submit" value="Search" /> </p></form><table class="table"> <tr> <th> @Html.DisplayNameFor(model => model.Name) </th> @*<th> @Html.DisplayNameFor(model => model.Application_Exec) </th> <th> @Html.DisplayNameFor(model => model.SME) </th> <th> @Html.DisplayNameFor(model => model.Project_Directory_Location) </th> <th> @Html.DisplayNameFor(model => model.IRDR_name) </th> <th> @Html.DisplayNameFor(model => model.Description) </th> <th> @Html.DisplayNameFor(model => model.Risk_Statement) </th>*@ <th> @Html.DisplayNameFor(model => model.InherentRisk) </th> @*<th> @Html.DisplayNameFor(model => model.AppOwner_DD.AppOwnerDes) </th> <th>*@ @* @Html.DisplayNameFor(model => model.C1_DD.C1) </th>
1 回答
慕田峪4524236
TA贡献1875条经验 获得超5个赞
您正在将一个类型 RiskApplicationModel 从 Index 控制器传递给 Index 视图但是 Index 视图需要一个基于 cshtml @model IEnumerable 中第一行的 IEnumerable 类型的模型
因此,发送到视图的内容与视图期望的内容之间存在不匹配
这需要在控制器或视图中修复。控制器需要发送视图期望的类型,或者视图应该将自身绑定到控制器发送的类型。
或者,控制器可以填充一个视图模型,并且视图可以像 MVVM 设计模式 (Model-View-ViewModel) 中那样绑定到一个视图模型
希望这可以帮助
- 1 回答
- 0 关注
- 178 浏览
添加回答
举报
0/150
提交
取消