ASP.NET MVC 视图需要将选定的下拉列表和日历日期传递给模型
Posted
技术标签:
【中文标题】ASP.NET MVC 视图需要将选定的下拉列表和日历日期传递给模型【英文标题】:ASP.NET MVC view needs to pass selected dropdown and Calendar date to model 【发布时间】:2020-06-01 13:41:06 【问题描述】:我正在尝试通过控制器中的存储过程将模型传回控制器以进行大规模更新。需要传回控制器的两个关键值是视图中选定的下拉列表和日历日期。模型中有用于存储信息的字段,但我不知道如何填充模型中的值。
这是当前代码:
<div>
<a href="#" id="addNew">Add New</a>
</div>
<p>
PlantArea: @html.DropDownList("PlantArea", " ")
EntryDate: @Html.TextBox("EntryDate", @DateTime.Now.ToShortDateString(), new id = "Calendar", @class = "datepicker" )
<input type="submit" value="Load Daily Entries" />
<br /> <br />
</p>
<table id="dataTable" border="0" cellpadding="0" cellspacing="0">
<tr>
<th>Employee Id</th>
<th>Employee Name</th>
<th>Status Reason</th>
<th>HR Comment</th>
</tr>
@if (Model != null && Model.Count > 0)
int j = 0;
foreach (var i in Model)
<tr style="border:1px solid black">
<td>@Html.TextBoxFor(a => a[j].EmployeeId)</td>
<td>@Html.TextBoxFor(a => a[j].Preferred_Name)</td>
<td>@Html.TextBoxFor(a => a[j].Entry_Code, new @Value = ViewBag.DefaultAttendanceCode )</td>
<td>@Html.TextBoxFor(a => a[j].HR_Comment)</td>
<td>>@Html.TextBoxFor(a => a[j].EntryDate, new @Value = EntryDate)</td>
<td>>@Html.TextBoxFor(a => a[j].Entry_Code, new @Value = PlantArea )</td>
<td>
@if (j > 0)
<a href="#" class="remove">Remove</a>
</td>
</tr>
【问题讨论】:
【参考方案1】:您可以将模型绑定更改为紧耦合。 意味着您可以将该控件绑定到模型值 像@Html.TextBoxFor(m=>m.entrydate) @Html.DropDownListFor(m=>m.plantarea)
entrydate 和 planarea 都应该是模型中的属性。并将控件放在表单元素中,您可以在提交时获取控件中的值。
否则在 UI 中放置两个隐藏的文本框,并在这些隐藏字段中填充下拉列表和日期值。然后使用隐藏字段获取值
【讨论】:
以上是关于ASP.NET MVC 视图需要将选定的下拉列表和日历日期传递给模型的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ASP.NET MVC 3 中为填充的下拉列表创建视图模型
ASP.NET CORE MVC 选择标签助手 - 如何在不使用 ModelView 的情况下设置选定值