加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – ListBox不绑定我的viewmodel

发布时间:2020-12-16 03:37:29 所属栏目:asp.Net 来源:网络整理
导读:我知道这个问题已经被问到了很多. here 和 here 但我仍然无法弄清楚问题. 我正在开发一个博客来自学MVC框架.现在,当我发布下面的视图时,ListBoxFor帮助器不会将任何值绑定到我的模型.该列表成功包含所有类别,但是当POST控制器返回视图模型时,Categories对象
我知道这个问题已经被问到了很多.

here

here

但我仍然无法弄清楚问题.

我正在开发一个博客来自学MVC框架.现在,当我发布下面的视图时,ListBoxFor帮助器不会将任何值绑定到我的模型.该列表成功包含所有类别,但是当POST控制器返回视图模型时,Categories对象为null.

这是视图模型:

public class PostViewModel
{
    public Post Posts { get; set; }
    public IEnumerable<Category> Categories { get; set; }
}

控制者:

public ActionResult Create()
    {
        PostViewModel post = new PostViewModel();
        post.Categories = db.ListCategories();
        return View(post);
    }

风景:

<p>@Html.ListBoxFor(model => model.Categories,new MultiSelectList(Model.Categories,"CategoryID","CategoryName"))</p>

解决方法

我相信你的视图模型中应该有一个数组属性,所选的ID将绑定到该属性.

public class PostViewModel
{
    public Post Posts { get; set; }
    public int[] SelectedCategoryIds { get; set; }
    public IEnumerable<Category> Categories { get; set; }
}

并将您的Html.ListBoxFor调用更改为SelectedCategoryIds属性.

<p>@Html.ListBoxFor(model => model.SelectedCategoryIds,"CategoryName"))</p>

暂且不说:现在您正在为SelectedCategoryIds属性创建一个列表框,如果您有一个列表标签,您应该将其更改为SelectedCategoryIds属性.

@Html.LabelFor(model => model.SelectedCategoryIds,"Categories")

(“类别”是标签文本)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读