我有一个FormMethod后一个问题,我想发布一个单一值(ID),并将其存储在一个会话变量,但价值回归0FormMethod.Post返回0
这是我的码。
@foreach (var item in Model)
{
using (@Html.BeginForm("Index", "ProductSelec", FormMethod.Post))
{
@Html.HiddenFor(modelItem => item.id, new { value = "@Html.DisplayFor(modelItem => item.id)" })
<div class="AppOpt">
<button type="submit" name="submit" style="background-image: url('../Content/ICONS/SystemApp/@Html.DisplayFor(modelItem => item.img)');border-radius: 20px;background-size: cover;background-repeat: no-repeat;" class="AppImg">
<div class="OptNameRec">
<div class="OptIcon">
<img src='~/Content/ICONS/@Html.DisplayFor(modelItem => item.icon)'>
</div>
<div>
<p>@Html.DisplayFor(modelItem => item.nombre)</p>
</div>
<div class="clear"></div>
</div>
<div class="OptImage"></div>
</button>
</div>
}
}
表格在foreach里面,因为我从数据库中创建元素dinamically。
我想存储item.id点击。
这是我的控制器
public ActionResult Index()
{
return View(db.aplicaciones.ToList());
}
public ActionResult ProductFamily()
{
return View();
}
[HttpPost]
public int Index(aplicaciones aplicaciones)
{
Session["appID"] = aplicaciones.id;
return aplicaciones.id;
}
,这是我的模型。
public partial class aplicaciones
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public aplicaciones()
{
this.appNfam = new HashSet<appNfam>();
}
public int id { get; set; }
public string nombre { get; set; }
public string icon { get; set; }
public string img { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<appNfam> appNfam { get; set; }
}
我试图创建另一个模型,但是当我添加时,foreach没有读取数据库中的值。
我希望你能帮助我。
为什么在foreach之前有一个“@”? –