我不知道如何通过函数javascript打开视图传递参数。示例:使用pass参数categoryid和productid
打开一个DetailProduct视图 function DetailProduct(cid, pid) {
window.location.replace('@Url.Action("Detail", "Product", new { CategoryID = cid , ProductID = pid })');
}
我收到错误The name cid does not exist in the current context
和The name pid does not exist in the current context
非常感谢。
答案 0 :(得分:1)
Url.Action
,而cid
和pid
是客户端变量,因此它们在服务器上技术上不存在。
如果您的操作中CategoryID
和ProductID
是可选参数:
public ActionResult Product(int? CategoryID, int? ProductID)
然后你可以做类似
的事情var url = '@Url.Action("Detail", "Product")' + '?CategoryID=' + cid + "&ProductID=" + pid
您还可以为此操作创建特定的用户友好网址。在RouteConfig.cs
文件内添加路线:
routes.MapRoute(
name: "ProductDetails",
url: "/Detail/Product/{CategoryID}/{ProductID}",
defaults: new { controller = "Detail", action = "Product", CategoryID = UrlParameter.Optional, ProductID = UrlParameter.Optional });
然后你就可以创建一个这样的网址:
var url = '@Url.Action("Detail", "Product")' + '/' + cid + "/" + pid;
最终看起来像http://.../Product/Detail/1/2
和cid = 1
pid=2