【发布时间】:2020-06-21 17:03:09
【问题描述】:
我在视图模型的控制器 http post 部分中获取空值。所有的值都是空的。我也无法访问视图模型属性并选择列表值。如何解决空值并从模型中访问所选城市以使用 db context 更新数据库。
我搜索了其他类似的问题,但这些结果没有帮助。
如果有人能解决这个问题,那将是非常有帮助的。
模型类:
namespace MvcCoreAngular.ViewModels
{
public class DetailedResultEdit
{
public int employeeid { get; set; }
public string name { get; set; }
public List<SelectListItem> citieslist { get; set; }
public int cityid { get; set; }
public string department { get; set; }
public string gender { get; set; }
}
}
HTML:
@model IEnumerable<MvcCoreAngular.ViewModels.DetailedResultEdit>
@{
ViewData["Title"] = "Edit";
}
<h2>Edit</h2>
@using (Html.BeginForm("Edit", "Home", FormMethod.Post))
{
@foreach (var item in Model)
{
<table>
<tr>
@Html.Label("Name")
@Html.TextBoxFor(model => item.name)
<br />
</tr>
<tr>
@Html.Label("Department")
@Html.TextBoxFor(model => item.department)
<br />
</tr>
<tr>
@Html.Label("Cities")
@Html.DropDownListFor(model => item.cityid, item.citieslist, "", null)
<br />
</tr>
<tr>
<input type="submit" value="Submit" id="btnSubmit" />
</tr>
</table>
}
}
控制器:
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Edit(DetailedResultEdit mo)
{
//IEnumerable<tblcities> citieslist = from c in _context.tblcities.ToList<tblcities>().GroupBy(x=> x.cityname).Select(x=> x.First());
if (ModelState.IsValid) {
var empdata = _context.tblemployee.Find(mo.employeeid);
empdata.cityid = mo.cityid;
empdata.department = mo.department;
empdata.name = mo.name;
_context.SaveChanges();
}
【问题讨论】:
标签: asp.net-mvc asp.net-core razor asp.net-mvc-viewmodel