在 Razor 的 Javascript 中嵌入 Html.ActionLink
Posted
技术标签:
【中文标题】在 Razor 的 Javascript 中嵌入 Html.ActionLink【英文标题】:Embed Html.ActionLink in Javascript in Razor 【发布时间】:2011-08-15 08:48:57 【问题描述】:我知道可以在 MVC3 的 javascript 中嵌入 @html,但我无法让以下工作正常工作,也不确定这是否可行。
使用 jQuery DataTable,我有一个 AJAX 调用来创建我的新行,然后我使用数据表 API 以编程方式添加它。这一切都有效,但是我想将我的 Edit ActionLink 放到行上,它只显示文本“编辑”,而不是链接。
当然我可以手动执行此操作,只是想知道是否有更好的选择。
例如
tablePallets.fnAddData([ GetPalletActionLinks(), etc...
function GetPalletActionLinks()
var result = @Html.ActionLink("Edit", "EditPallet", new id = 1 );
return result;
目前我已经硬编码了 ID = 1,但我可以很容易地为新创建的行获取它。
谢谢 邓肯
【问题讨论】:
【参考方案1】:我认为这很简单,只需在链接周围添加引号:
var result = '@Html.ActionLink("Edit", "EditPallet", new id = 1 )';
这将生成整个<a>
标签。你也可以做的只是返回网址:
var result = '@Url.Action("EditPallet", new id = 1 )';
并使用 jQuery 将其嵌入到现有锚点中:
<!-- let's imagine this already exists -->
<a href="#" id="dynamicLink">Edit</a>
// result is ovbiously what the other function returns
$("#dynamicLink").attr("href", result);
【讨论】:
你是对的......我认为如果我在它周围加上引号会被解释为字符串文字......对于 MVC3 仍然是新的,它可以做什么仍然让我感到惊讶.看不到我在做另一个 WebForms 应用程序! @Duncan - 我知道你的意思,这里也一样 =)以上是关于在 Razor 的 Javascript 中嵌入 Html.ActionLink的主要内容,如果未能解决你的问题,请参考以下文章
使用 MVC 渲染具有嵌入式 Razor 变量的动态 HTML