2016-11-10 142 views
-1

在我的View中使用underscore.js,我试图将变量serialNumberId传递回我的视图。以下是我的尝试:如何将一个值从underscore.js传递给MVC控制器?

<a href="@Url.Action("process", "wip", new { id = <%= serialNumberId %> })"> 
    Text 
</a> 

...但它不喜欢那样。红色的波浪。

然后我尝试:

<a href="@Url.Action("process", "wip")/<%= serialNumberId %>"> 
    Text 
</a> 

...但随后的代码,甚至从未达到控制器我process操作方法。

一切工作正常,如果我硬编码serialNumberId值是这样的:

<a href="@Url.Action("process", "wip", new { id = 10 })"> 
    Text 
</a> 

或像这样:

<a href="@Url.Action("process", "wip")/10"> 
    Text 
</a> 

那么,如何做到这一点,但我serialNumberId变量,而不是?

编辑:这里就是serialNumberId从(一个数据表功能,它的一部分)来验证码:

... 
columns: [ 
    { 
     data: 'serialNumberId', searchable: false, orderable: false, 
     render: function (data, type, row, meta) { 
      var structure = _.template($('#tmpl-actions').html()), 
       html = structure({ serialNumberId: data }); 

      return html; 
     } 
    }, 

编辑2:好了,以后多一些玩耍,我不知道认为这是一个下划线问题。这是一个数据表问题。由于某种原因,上面的serialNumberId: data是空的。当我遍历ASP.Net时,它被填充了一个int,但是在它通过DataTables时它是空的。

+0

这是哪里的代码结合您的JavaScript代码? –

+0

第二次尝试的实际输出是多少?结果请求的URL是什么? – David

+0

我添加了serialNumberId来自的代码 –

回答

0

如果serialNumberId是jQuery变量,则不能在剃刀语法中使用它。 但如果你想使用它创建网址,你可以做到这一点`

<script>    
    $("a").click(function(){ 
     var url='@Url.Action("process","wip")'+serialNumberId; 
     window.location.href=url; 
    }); 
</script> 
+0

它不是一个jQuery变量,它来自我刚刚包含在原始文章底部的一些DataTables代码 –

相关问题