Asp.net- Mvc复杂模型绑定

皮疹

我在c#中有两个poco类,一个酒店和一个价格,这是控制器中酒店创建动作中的一对多关系。我有一个视图袋来填充下拉列表,如下所示

 ViewBag.Hotel_Rate = new SelectList(db.Hotel_Rate, "Id", "Rate");

我在视图中有打击代码以填充下拉列表

 @Html.DropDownList("Hotel_Rate", null, new { @Name = "Hotel_Rate.Rate", @id = "Hotel_Rate.Rate" })

一切应该在这里,drowpdown列表从datebase填充并显示在我的视图中,但是当我将模型发布到控制器模型时,但酒店价格的id为零,所以我得到EntityValidationErrors的问题是什么我的约束力?我不想使用任何定制模型绑定类,asp.net中的默认模型绑定器能够处理该类,但是如何?

public partial class Hotel
        {
            public Hotel()
            {

            }

            public int Id { get; set; }
            public string Name { get; set; }
            public virtual Hotel_Rate Rate { get; set; }

        }


       public partial class Hotel_Rate
        {
            public Hotel_Rate()
            {
                this.Hotel = new HashSet<Hotel>();
            }

            public int Id { get; set; }
            public string Rate { get; set; }
            public string Description { get; set; }

            public virtual ICollection<Hotel> Hotel { get; set; }
        }

[HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create([Bind(Include = "Id,Name,Hotel_Rate")] Hotel hotel)
        {
            if (ModelState.IsValid)
            {
                db.Hotels.Add(hotel);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

和生成的html如下

<select name="Hotel_Rate.Rate" id="Hotel_Rate.Rate">
<option value="1">5</option>
<option value="2">4</option>
</select>
用户名

您有两个问题,控件的命名和[Bind(Include ..)]属性的使用,因为您没有名为Hotel_Rate属性的包含属性的属性Rate(这<select name="Hotel_Rate.Rate" ..>是试图绑定到的属性)。

使用强类型的帮助程序以确保不会发生命名问题

@Html.DropDownListFor(m => m.Rate.Rate, (SelectList)ViewBag.Hotel_Rate)

这将呈现

<select name="Rate.Rate" id="Rate_Rate">
  <option value="1">5</option>
  <option value="2">4</option>
</select>

注意它不清楚您要绑定的对象。SelectList有值ID和显示文本Rate,所以我真的觉得你想m => m.Rate.ID,否则你的绑定要么1或者2Rate时我想你要绑定属性12ID财产

您的Bind属性应为

public ActionResult Create([Bind(Include = "Id,Name,Rate")] Hotel hotel)

但由于您已将的所有属性都包含HotelInclude列表中,因此它毫无意义,可以完全删除。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Json和ASP.NET MVC模型绑定

来自分类Dev

ASP.NET MVC复杂模型更新

来自分类Dev

使用GET的ASP.Net MVC模型绑定复杂对象

来自分类Dev

ASP.NET MVC 5模型绑定编辑视图

来自分类Dev

$ http发布不与asp.net MVC模型绑定

来自分类Dev

ASP.NET MVC中的问题模型绑定嵌套列表

来自分类Dev

ASP.NET MVC 5模型绑定不起作用

来自分类Dev

JSON的ASP.NET MVC 4递归模型绑定

来自分类Dev

如何在Asp.Net MVC 4中将复杂属性绑定到多态模型中?

来自分类Dev

绑定[Serializable]类的ASP.Net MVC模型

来自分类Dev

ASP.NET MVC模型绑定派生类

来自分类Dev

ASP.NET MVC 6模型绑定到复杂集合-IList <T>

来自分类Dev

ASP.NET MVC 5模型绑定列表为空

来自分类Dev

ASP.NET MVC绑定到视图模型

来自分类Dev

ASP.NET MVC Partiel视图模型绑定

来自分类Dev

Asp.Net Core MVC-复杂模型在“获取控制器”操作上未绑定

来自分类Dev

ASP.NET Core 3 MVC:对象列表的模型绑定

来自分类Dev

Asp .Net Core 3.1 Razor页面:复杂模型绑定

来自分类Dev

什么是ASP.NET MVC中的模型绑定?

来自分类Dev

ASP.NET MVC模型绑定未解析

来自分类Dev

ASP.NET MVC中的问题模型绑定嵌套列表

来自分类Dev

实体框架和ASP.NET MVC更复杂的模型

来自分类Dev

ASP.NET MVC:模型绑定中的类型转换

来自分类Dev

ASP.Net MVC模型绑定程序-忽略属性

来自分类Dev

ASP.NET MVC模型绑定资源序列

来自分类Dev

ASP.NET MVC模型绑定派生类

来自分类Dev

ASP.Net MVC 6 PartialView模型绑定混乱

来自分类Dev

ASP.NET MVC 5模型绑定列表为空

来自分类Dev

ASP.Net MVC模型绑定IEnumerable失败