Asp.net mvc 从接收IEnemerable列表的视图传递id值
我想从视图中传递id值。我正在使用Html.ActionLink属性。 我是这样表演的Asp.net mvc 从接收IEnemerable列表的视图传递id值,asp.net-mvc,asp.net-mvc-4,razor,Asp.net Mvc,Asp.net Mvc 4,Razor,我想从视图中传递id值。我正在使用Html.ActionLink属性。 我是这样表演的 @foreach (var item in Model) { <div class="grid_1_of_4 images_1_of_4"> <a href="preview.html"><img src="/@item.p_imageUrl" alt="" /></a> <h2>@item.p_nam
@foreach (var item in Model)
{
<div class="grid_1_of_4 images_1_of_4">
<a href="preview.html"><img src="/@item.p_imageUrl" alt="" /></a>
<h2>@item.p_name </h2>
<div class="price-details">
<div class="price-number">
<p><span class="rupees">@item.p_price</span></p>
</div>
@Html.ActionLink("Add to Cart", "Mobiles", new { id = item.ProductId }, new { @class = "add" })
<div class="clear"></div>
</div>
</div>
}
@foreach(模型中的变量项)
{
@项目p_名称
@项目p_价格
@ActionLink(“添加到购物车”、“手机”、新的{id=item.ProductId}、新的{@class=“Add”})
}
但这并不是发布它,而是在控制器中调用get action。如何解决这一问题,您可以使用可选参数功能将一个操作用于两件事,无需执行另一个操作:
public ActionResult Mobiles(int id=0)
{
// id will be initialized 0 when no id passed to action
if(id > 0)
{
// if id is coming do something here
var q = from n in db.Mobiles
where n.ProductId == id
select n;
return View(q);
}
else
{
var q = from n in db.Mobiles
select n; // id is not passed
return View(q);
}
}
您试图链接到的控制器和操作的名称是什么?另外,该操作是否只需要POST请求?控制器名称为Products否我有两个名称相同的操作一个带有参数id另一个没有参数您可以显示您的操作吗?public ActionResult Mobiles(){var q=from n in db.Mobiles select n;return View(q);}[HttpPost]PublicActionResult手机(int-id){返回视图(id);}