asp.net核心选择标记帮助器

时间:2018-01-06 21:54:10

标签: asp.net-core asp.net-core-mvc html-select multi-select

我正在尝试关注Select Tag Helper in ASP.NET Core MVC,但我无法获得理想的结果。我能够从数据库中检索记录并使用正确的值/文本填充我的选择标签以获取所有可用选项,但是在提交表单时没有返回任何值,我不确定我做错了什么。任何帮助将不胜感激。我的代码如下。谢谢。

模型1:

public class Basis
    {    
        public int BasisId { get; set; }
        public string BasisName { get; set; }
    }

模型2:

public class Category
    {
        public string CategoryId { get; set; }
        public string CategoryName { get; set; }
    }

视图模型:

public class ViewModel
    {
        public List<Basis> Basis { get; set; }

        public List<Category> Category { get; set; }
 {

查看:

<select id="basisSelect" multiple="multiple" asp-for="Basis" asp-items="@(new SelectList(Model.Basis, "BasisId", "BasisName"))"></select>
<select id="categorySelect" asp-for="Category" asp-items="@(new SelectList(Model.Category, "CategoryId", "CategoryName"))"></select>

控制器:

[HttpPost]
public IActionResult SubmitSearch(SearchManager criteriaManager)
{}

当我做出选择时,我的计数为零。如图像image

所示

再次感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

能够从感兴趣的任何人那里获得其他来源的答案或遇到类似的问题。

select只会回复所选的值,而不是列表,所以你的回发模型应该是:

public class PostBackSearchManager
{
        public string Basis { get; set; }
        public string Category { get; set; }
}

[HttpPost]
public IActionResult SubmitSearch(PostBackSearchManager criteriaManager)
{
}

// alternate action method
[HttpPost]
public IActionResult SubmitSearch(string basis, string category)
{
}