Asp.net mvc 我的模型在提交期间不具有约束力
我正在练习MVC ASP.net,我遇到了一个问题。在加载过程中,我获取数据并将其传递给模型进行显示,然后再次尝试传递以进行发布以保存数据,但模型无法获取数据。请帮助我了解我缺少的内容。多谢各位 我附上了一个图像,它显示了什么,这些数据应该得到张贴 我的模型Asp.net mvc 我的模型在提交期间不具有约束力,asp.net-mvc,Asp.net Mvc,我正在练习MVC ASP.net,我遇到了一个问题。在加载过程中,我获取数据并将其传递给模型进行显示,然后再次尝试传递以进行发布以保存数据,但模型无法获取数据。请帮助我了解我缺少的内容。多谢各位 我附上了一个图像,它显示了什么,这些数据应该得到张贴 我的模型 public class RoomReservation { public RoomReservation() { AddAmenity = new List<Ameni
public class RoomReservation
{
public RoomReservation()
{
AddAmenity = new List<AmenityReservation>();
}
public int Room_id { get; set; }
public string Room_name { get; set; }
public int RoomType_id { get; set; }
public string Room_Type { get; set; }
public decimal Room_rate { get; set; }
public List<AmenityReservation> AddAmenity { get; set; }
}
public class AmenityReservation
{
public int Amenity_id { get; set; }
public string Amenity_Name { get; set; }
public decimal? Amenity_Price { get; set; }
public int Quantity { get; set; }
}
}
我的看法
@model Reservation_System.Models.RoomReservation
@{
ViewBag.Title = "RoomReservation";
Layout = "~/Views/Shared/_MasterLayout.cshtml";
}
<div style="padding-top:10%">
</div>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<section class="container tm-home-section-1" id="more">
<div class="row">
<div class="col-12">
<div class="col-lg-6 col-md-6">
<div class="jumbotron">
<h2>RoomReservation</h2>
<div class="row">
@Html.DisplayFor(x => x.Room_id)
</div>
<div class="row">
@Html.DisplayFor(x => x.Room_Type)
</div>
<div class="row">
@Html.DisplayFor(x => x.Room_rate)
</div>
</div>
</div>
<div class="col-lg-6 col-md-6">
<table class="table">
<thead>
<tr>
<td style="visibility:hidden"></td>
<td>Amenity</td>
<td>Price</td>
<td>Quantity</td>
</tr>
</thead>
<tbody>
@foreach (var n in Model.AddAmenity)
{
<tr>
<td style="visibility:hidden">@n.Amenity_id</td>
<td>@n.Amenity_Name</td>
<td>@n.Amenity_Price</td>
<td><input type="text" value="@n.Quantity" /> </td>
</tr>
}
</tbody>
</table>
</div>
</div>
</div>
<div class="row">
<div>
<input type="submit" value="Reserve" />
</div>
</div>
</section>
}
@model Reservation\u System.Models.RoomReservation
@{
ViewBag.Title=“房间预订”;
Layout=“~/Views/Shared/_MasterLayout.cshtml”;
}
@使用(Html.BeginForm())
{
@Html.AntiForgeryToken()
客房预订
@DisplayFor(x=>x.Room\u id)
@DisplayFor(x=>x.Room\u类型)
@Html.DisplayFor(x=>x.Room\u rate)
便利设施
价格
量
@foreach(模型中的var n.附加)
{
@n、 舒适性
@n、 市容名称
@n、 市容价格
}
}
在视图中显示,数据应在过帐期间传递以保存到数据库中
属性Html上没有该名称。因此,当您将表单发布到控制器时,该值不会绑定到模型上的属性 用下面的代码更改
礼仪的循环
<tbody>
@for (int i = 0; i < Model.AddAmenity.Count; i++)
{
<tr>
<td>@Html.HiddenFor(m => m.AddAmenity[i].Amenity_id)</td>
<td>@Html.TextBoxFor(m => m.AddAmenity[i].Amenity_Name, new { @readonly = "readonly" })</td>
<td>@Html.TextBoxFor(m => m.AddAmenity[i].Amenity_Price, new { @readonly = "readonly" })</td>
<td>@Html.TextBoxFor(m => m.AddAmenity[i].Quantity)</td>
</tr>
}
</tbody>
或
等等,关于类型和比率
您需要使用HiddenFor
和DisplayFor
,因为
HiddenFor
用于准备发布值,而DisplayFor
用于显示这些值
参考:
表单dos中唯一的表单控件甚至没有name
属性,因此它的值从未提交过。永远不要手动生成表单控件-始终使用HtmlHelper
方法。而且foreach
循环无论如何都不会工作-请参阅
给出name@aakash-这与模型没有任何关系!
<tbody>
@for (int i = 0; i < Model.AddAmenity.Count; i++)
{
<tr>
<td>@Html.HiddenFor(m => m.AddAmenity[i].Amenity_id)</td>
<td>@Html.TextBoxFor(m => m.AddAmenity[i].Amenity_Name, new { @readonly = "readonly" })</td>
<td>@Html.TextBoxFor(m => m.AddAmenity[i].Amenity_Price, new { @readonly = "readonly" })</td>
<td>@Html.TextBoxFor(m => m.AddAmenity[i].Quantity)</td>
</tr>
}
</tbody>
@Html.EditorFor(m => m.Room_id)
@Html.HiddenFor(m => m.Room_id)
@Html.DisplayFor(m => m.Room_id)