如何将这个Razor数据发送到javascript函数?

时间:2013-09-21 01:33:31

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 razor knockout.js

我有以下代码:

foreach (var interest in Model.Interests)
    {
    <div>
        <span>@interest.SubjectName</span>
        @if (interest.Description.Length > 2)
        {
            <a data-bind="click(DATA)" href="#" title="View Details">details</a>
        }
    </div>

    }

我使用Razor是因为我需要允许没有javascript的用户拥有该网站的只读权限,所以在这里使用knockout / JS循环不是一个选项。

在这一行:

<a data-bind="click(DATA)" href="#" title="View Details">details</a>

我想获取当前interest(剃刀对象)并将其发送到click函数。我只是不知道语法。

如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

取决于您要传递给函数的对象的表示形式。如果JSON就足够了,试试这个:

<a data-bind='@String.Format("click({0})", Newtonsoft.Json.JsonConvert.SerializeObject(interest))'
   href="#" title="View Details">details</a>

然后在click函数中,你可以得到这样的对象:

function click(data) {
    var interest = JSON.parse(data);
}