【发布时间】:2018-05-13 20:08:39
【问题描述】:
我的模特
public class ActivityModel
{
public int Id { get; set; }
public String Nick { get; set; }
public String TripName { get; set; }
[DisplayFormat(DataFormatString = "{0:hh\\:mm}", ApplyFormatInEditMode = true)]
public TimeSpan? FromTime { get; set; }
[DisplayFormat(DataFormatString = "{0:hh\\:mm}", ApplyFormatInEditMode = true)]
public TimeSpan? ToTime { get; set; }
public String FromPlace { get; set; }
public String ToPlace { get; set; }
public String activityType { get; set; }
[DisplayFormat(DataFormatString = "{0:dd.MM.yyyy}", ApplyFormatInEditMode = true)]
public DateTime? Timestamp { get; set; }
public String Weather { get; set; }
public int Difficulty { get; set; }
public bool Reviewed { get; set; }
}
我的视图行看起来像这样
@model IList<ActivityModel>
@for (int i = 0; i < Model.Count; i++)
{
if (!(bool)Model[i].Reviewed)
{
<tr>
@using (Html.BeginForm("Accept", "Overview", FormMethod.Post, new { activityModel = Model }))
{
@Html.AntiForgeryToken()
<td>
@Html.DisplayFor(m => Model[i].Timestamp)
@Html.HiddenFor(m => Model[i].Timestamp)
</td>
<td>
@Html.DisplayFor(m => Model[i].Nick)
@Html.HiddenFor(m => Model[i].Nick)
</td>
<td>
@Html.DisplayFor(m => Model[i].TripName)
@Html.HiddenFor(m => Model[i].TripName)
</td>
<td>
@Html.DisplayFor(m => Model[i].FromTime)
@Html.HiddenFor(m => Model[i].FromTime)
</td>
<td>
@Html.DisplayFor(m => Model[i].FromPlace)
@Html.HiddenFor(m => Model[i].FromPlace)
</td>
<td>
@Html.DisplayFor(m => Model[i].ToTime)
@Html.HiddenFor(m => Model[i].ToTime)
</td>
<td>
@Html.DisplayFor(m => Model[i].ToPlace)
@Html.HiddenFor(m => Model[i].ToPlace)
</td>
<td>
@Html.TextBoxFor(m => Model[i].Difficulty, new { id = "Difficulty" })
<--!@Html.HiddenFor(m => Model[i].Difficulty)--!>
<div style="visibility:hidden">
@Html.HiddenFor(m => Model[i].Id)
@Html.HiddenFor(m => Model[i].Reviewed)
@Html.HiddenFor(m => Model[i].activityType)
@Html.HiddenFor(m => Model[i].Weather)
</div>
</td>
<td>
<input type="submit" name="btn_accept" value="Accept" />
</td>
}
</tr>
}
}
我的控制器是这个
public ActionResult Index()
{
List<ActivityModel> activities_web = new List<ActivityModel>();
//someLogicForFilling
return View(activities_web);
}
[HttpPost]
[ValidateAntiForgeryToken()]
public ActionResult Accept(ActivityModel activityModel)
{
return RedirectToAction("Index");
}
问题是在 ActionResult Accept 中 ActivityModel 总是 NULL 空 0 ... 我现在真的花了一整天的时间,我不知道问题出在哪里我尝试了近 20 种解决方案,但对我没有任何效果..
渲染页面并显示所有值是可以的,但是当我尝试发布它们时,就像没有发布一样。
【问题讨论】:
标签: post model-view-controller model