我正在构建一个页面,用户可以在其中查看他/她选择的项目的详细信息。
作为此项目的一部分,我需要使用Ajax和部分视图显示此特定项目下列出的所有注释。
在Controller
课程中,我无法将所选项目的productID
传递给局部视图方法。当我将productID硬编码到方法中时,注释会显示出来,但是当我通过参数传递它时,该方法甚至不会触发。
但是,所有产品详细信息都没有限制。
我将不胜感激任何帮助。请在下面找到我Controller
public ActionResult Index()
{
List<Product> productList = new ProductClient().GetAllProducts().ToList();
return View("Index", productList);
}
//This method works correctly. The id of the product is passed.
public ActionResult Details(int id)
{
return View(new ProductClient().GetProductByID(id));
}
// This method is not even getting triggered.
public PartialViewResult ProductComments(int id)
{
List<Comment> commentList = new ProductCommentClient().GetCommentsByProductID(id).ToList();
return PartialView("_comments", commentList);
}
这是我的Details.cshtml
@Ajax.ActionLink("Product Comments", "ProductComments(" + @Model.ID + ")", new AjaxOptions
{
HttpMethod = "Get",
UpdateTargetId= "divComments",
InsertionMode = InsertionMode.InsertAfter
})
<fieldset>
<div id="divComments">
<legend>Comments</legend>
</div>
</fieldset>
非常感谢提前。
答案 0 :(得分:0)
我解决了这个问题。
@Ajax.ActionLink("Product Comments", "ProductComments", new {id=Model.ID}, new AjaxOptions
{
HttpMethod = "Get",
UpdateTargetId= "divComments",
InsertionMode = InsertionMode.InsertAfter
})
<fieldset>
<div id="divComments">
<legend>Comments</legend>
</div>
</fieldset>
我以错误的方式传递了ID。我希望这至少可以帮助别人。