我在表格中显示列表只是为了显示,如果用户对显示感到满意,他们可以将其导出为pdf(虽然这些页面不能改变任何内容)
我的主要问题是,当我提交表单时,Rooms为空。
现在我知道,如果我将@Html.ValueFor
更改为@Html.TextBoxFor
等并发布表单,则会有一个值,这很好,但我不希望在此页面上显示文本框,标签或价值观是我所需要的
我尝试了@Html.DisplayTextFor
,但结果相同,在Rooms中为null
任何人都可以建议我如何实现我的需要吗?
控制器
[HttpPost]
public ActionResult GeneratePdf(CommissionReportViewModel model)
{
// Some other processing
}
视图模型
public class CommissionReportViewModel : ApiCredentials
{
public string Organiser { get; set; }
public string EventName { get; set; }
public string EventDate { get; set; }
public BookingPages Bookings { get; set; }
public double TotalCommission { get; set; }
public string CurrencyCode { get; set; }
public List<CommissionReportRooms> Rooms { get; set; }
}
查看
@for(var i = 0; i < Model.Rooms.Count();i++)
{
<tr>
<td>@Html.ValueFor(m => Model.Rooms[i].DelegateName)</td>
<td>
@Html.ValueFor(m => Model.Rooms[i].FirstDate, "{0:dd MMM yyyy}")
</td>
<td>@Html.ValueFor(m => Model.Rooms[i].Nights)</td>
<td>@Html.ValueFor(m => Model.Rooms[i].RoomType)</td>
<td>@Html.ValueFor(m => Model.Rooms[i].GrossTotal, "{0:0.00}") @Html.DisplayTextFor(m => Model.Rooms[i].Currency)</td>
<td>@Html.ValueFor(m => Model.Rooms[i].Rate, "{0:0.00}%")</td>
<td>@Html.ValueFor(m => Model.Rooms[i].Commission, "{0:0.00}") @Html.DisplayTextFor(m => Model.Rooms[i].Currency)</td>
<td></td>
</tr>
}
答案 0 :(得分:0)
实际上只提交了某些HTML元素,例如输入和选择列表。如果您只是在屏幕上显示文字,那么将永远不会使用浏览器的表单提交来提交。
选项
虽然
,但他们无法更改此页面上的任何内容
整个HTML标记在客户端上,因此他们可以更改他们想要的任何内容!如果您对此感到担心,您应该考虑让您的控制器从会话/数据库中检索预订数据。