[英]Saving values from selectlistitem to viewmodel
我对 selectListItem 类有问题。
(我可以将数据加载到表单中的列表项,但在提交时不能只保存列表项中的数据)视图模型。
这是一些代码:
视图模型的属性
[Required]
public int PoslovnicaID { get; set; }
[Required(ErrorMessage = "Polje je obavezno.")]
public List<SelectListItem> poslovnice { get; set; }
视图中的代码
<div class="col-md-12 form-group">
<label asp-for="poslovnice">Odabir poslovnice</label>
<select name=""
asp-for="PoslovnicaID"
asp-items="poslovnice"
class="form-control">
<option selected disabled>Odabir poslovnice</option>
</select>
</div>
你能告诉我我是否遗漏了一些明显的东西吗
我感谢任何帮助
模型绑定基于 name 属性。 您应该删除 select 标签中的name=""
,因为asp-for="PoslovnicaID"
会将其呈现为name="PoslovnicaID"
。
另外,表单只会提交selected option(PoslovnicaID)的值,会在ViewModel中绑定PoslovnicaID
,所以poslovnice
为null,应该为null。
一个简单的测试:
public IActionResult Index()
{
ViewModel viewModel = new ViewModel
{
PoslovnicaID = 1,
poslovnice = new List<SelectListItem>
{
new SelectListItem{ Text = "AAA", Value = "1"},
new SelectListItem{ Text = "BBB", Value = "2"},
new SelectListItem{ Text = "CCC", Value = "3"},
}
};
return View(viewModel);
}
[HttpPost]
public IActionResult Edit(ViewModel viewModel)
{
return View();
}
看法:
@model ViewModel
@{
ViewData["Title"] = "Index";
}
<h1>Index</h1>
<form asp-action="Edit" method="post">
<div class="col-md-12 form-group">
<label asp-for="poslovnice">Odabir poslovnice</label>
<select name="poslovnice"
asp-for="PoslovnicaID"
asp-items="Model.poslovnice"
class="form-control">
<option selected disabled>Odabir poslovnice</option>
</select>
</div>
<input type="submit" value="submit" class="btn btn-danger" />
</form>
结果:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.