C# 在javascript中使用Url.Action
我正在尝试使用Url.Action方法为ajax调用正确生成所需的Url,但在尝试构建RouteValue时遇到了问题,下面是问题代码行:C# 在javascript中使用Url.Action,c#,javascript,jquery,asp.net-mvc,razor,C#,Javascript,Jquery,Asp.net Mvc,Razor,我正在尝试使用Url.Action方法为ajax调用正确生成所需的Url,但在尝试构建RouteValue时遇到了问题,下面是问题代码行: var url = @Url.Action("ViewFile", "Default", new { itemId = $(this).data("itemid") }); 如您所见,我正在尝试分配JQuery$(this.data(“itemid”) 到路由值中的itemId 有没有一种方法可以使用razor语法来编译此代码?您把客户端和服务器端搞混了。
var url = @Url.Action("ViewFile", "Default", new { itemId = $(this).data("itemid") });
如您所见,我正在尝试分配JQuery$(this.data(“itemid”)
到路由值中的itemId
有没有一种方法可以使用razor语法来编译此代码?您把客户端和服务器端搞混了。试着这样做:
var url = '@Url.Action("ViewFile", "Default")?itemId=' + $(this).data("itemid");
当您使用razor view engine编写@
时,您正在编写一条指令,该指令将在该命令结束时在服务器端进行处理。在您的例子中,您希望在来自javascript的url中添加一个参数,因此,只需在客户端使用@url
帮助程序生成的url解析该值
PS:我假设您使用的是默认路线表。另一种方法是创建占位符,然后替换它:
var url = '@Url.Action("GetOrderDetails", "Home", new { id = "js-id" })'
.replace("js-id", encodeURIComponent(rowId));
啊,当然当服务器端代码执行时Jquery不会运行,我真傻。谢谢[羞愧地垂下头]提醒一下,这对视图之外的javascripts不起作用