在我开始捏造我自己的方法之前,我正在把头发拉出来,我正在寻找指导。
这是我所拥有的:
查看片段
<td>@Html.ActionLink("More Details", "Index", new { id = product.ProductId })</td>
<td>@Html.ActionLink("Compare", "Compare", new { id = product.ProductId, compare = true })</td>
控制器片段
public ActionResult Index(FormCollection values)
{
// Does stuff, works
}
public ActionResult Index(int productId)
{
// Does stuff, works
}
现在,这就是我的问题。现在,从 POST 到表单,以及单击“更多详细信息”ActionLink 都采用了索引功能。这工作正常。
现在我希望“比较”具有功能性,我希望在同一页面上并保存比较产品的列表,这很好。但是我如何在同一个视图/页面上获得比较功能?!
我试过了:
public ActionResult Compare(int productId)
{
}
但显然这不起作用,因为它需要一个 Compare.cshtml,我不想发生这种情况。我希望它修改我的 ViewModel 并用新比较的产品返回它,所以我可以从我的原始视图中做到这一点:
@foreach(var products in Model.ComparedProducts)
我能看到我这样做的唯一方法是“捏造”:
public ActionResult Index(int productId = 0, bool compare)
{
}
如果同一页面上有很多功能,这可能会变得不守规矩。
当然,我在这里缺少一些明显的东西吗?
哦,AjaxLink 选项不适合我,因为这是必须通过回发(Progress Enhancement 和所有爵士乐)工作的网站的一部分。