Jquery 追加参数 <a href='@Url.ActionLink()'></a>



我有下面的代码在Jquery函数

$.each(array, function (index, value) {
var id1 = value.match(/d+/);
$("#linksList").append("<li>" + value + "<a href='@Url.ActionLink("Details", "Jira", new { id ="${id1}" })'>" + value + "</a>" + "</li>");
});

但是我不能传递参数Id。我得到的随机值分配为Id如下。我做错了什么?

<a href="/Jira/Details/%2Bid1%2B"> jira_subtask_link 41102</a>

这是不可能混合的,因为Razor存在于服务器端而jquery是客户端

模板引擎将c#代码注入HTML/CSS/Js中,然后再运行。因此,当它准备编译为客户端源代码时,asp.net无法呈现这样的变量,因为当应用程序运行时,var的生命周期是客户端/。这是编译时和运行时的差异

我想你可能会更好

  1. 将javascript变量保存为可以发送回控制器的内容
  2. 在控制器级别,将其放入可以传递给视图的模型
  3. 显示带有该id的动作链接,作为来自视图模型的变量,而不是来自jQuery

我知道这听起来有点奇怪,但这就是服务器端和客户端代码在模板引擎中的交互方式

另外,一种不太高明的方法可能是插入一个"假人";id字符串,然后使用jQuery用实际的id值

替换虚拟文本。

razor代码在服务器端编译并转换为html,客户端无法理解razor语法,所以如果你想从客户端获得相同的结果,你必须使用javascipt

我就是这么做的

$("#linksList").append("<li>" + "" + "<a href='/JIra/Details/" + id + "'>" + value + "</a>" + "</li>");

相关内容

  • 没有找到相关文章

最新更新