首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >访问razor块中的本地js变量

访问razor块中的本地js变量
EN

Stack Overflow用户
提问于 2015-08-30 06:14:42
回答 3查看 1.4K关注 0票数 0

我正在尝试在javascript中编写razor代码,其中我试图在razor代码中使用局部变量。以下是示例代码:

代码语言:javascript
复制
<script type="text/javascript">

for (i = 0; i < data.result.length; i++) {
     $("#member-table tbody").append("<tr>");

     var id = data.result[i].MemberId;

     var actions = $("<td>" + @Html.ActionLink("Detay", "Edit", new { id })  + "</td>)");
}
</script>

问题是剃刀代码无法识别id (即它不存在于当前上下文中)。我怎样才能做到这一点呢?有什么办法吗?

EN

回答 3

Stack Overflow用户

发布于 2015-08-30 06:32:11

如果你只是使用默认路由,那就简单地不用剃刀@Html.ActionLink了。坚持使用一个明确的标签:

代码语言:javascript
复制
var actions = $('<td><a href="/[your-controller-here]/Edit/'+ escape(id) + '">Detay</a></td>');

在这里,用你当前的控制器名称替换你的- ...obviously。

(我假设您的“id”不一定是URL编码的,因此使用“转义”。)

票数 1
EN

Stack Overflow用户

发布于 2015-08-30 06:36:39

您在这里混合了服务器端和客户端。您不能使用客户端变量创建@Html.ActioLink。Html.ActionLink是在服务器上呈现的,它根本没有任何关于客户端变量的线索。

如果您想使用客户端变量,如"id",则呈现一个普通的html链接(a)标记。

票数 0
EN

Stack Overflow用户

发布于 2018-08-31 08:59:20

这曾经对我很有效

代码语言:javascript
复制
    if ('@ViewBag.DownloadLink' != '') {
        window.location.href = '@ViewBag.DownloadLink';
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32291182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档